Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sonic Deploy 001 - Token and Vault #2352

Merged
merged 6 commits into from
Jan 15, 2025
Merged

Conversation

naddison36
Copy link
Collaborator

@naddison36 naddison36 commented Jan 14, 2025

Dependencies

Deployment

Deploy scripts

  • contracts/deploy/sonic/001_vault_and_token.js

Contracts

Contract Address
OSonicProxy 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794
OSonic 0x67895dd02C149e0d50C7f399BF31824F84751fDF
WOSonicProxy 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1
WOSonic 0x574cb89C0475487f9dbda19f8f426D5F30b58983
OSonicVaultProxy 0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186
OSonicVaultCore 0xb3D6e885F0c0f5355C7029AF328fE923EBf9906c
OSonicVaultAdmin 0x4Bc73050916e6D1738286D8863F8FdcFFAA879f8
OSonicDripperProxy 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03
FixedRateDripper 0xc5685a88569dcA11f343DB4dB50c8e0A7DDAd992
OSonicZapper 0xe25A2B256ffb3AD73678d5e80DE8d2F6022fAb21
VaultValueChecker 0x06f172e6852085eCa886B7f9fd8f7B21Db3D2c40

Governance

The following governance actions need to go through the Timelock contract via the Admin 5/8 multisig

  1. Upgrade Vault proxy to VaultCore
  2. Set the VaultAdmin
  3. Support wrapped S
  4. Unpause capital
  5. Withdrawal claim delay set to 1 day
  6. Configure the Vault
  7. Set setAutoAllocateThreshold
  8. Set guardian / strategist
  9. Set the Dripper on the Vault

Schedule Batch in Timelock

{
  "version": "1.0",
  "chainId": "146",
  "createdAt": 1736867284,
  "meta": {
    "name": "Transaction Batch",
    "description": "",
    "txBuilderVersion": "1.16.1",
    "createdFromSafeAddress": "0xbe2AB3d3d8F6a32b96414ebbd865dBD276d3d899",
    "createdFromOwnerAddress": ""
  },
  "transactions": [
    {
      "to": "0x31a91336414d3B955E494E7d485a6B06b55FC8fB",
      "value": "0",
      "data": null,
      "contractMethod": {
        "inputs": [
          {
            "type": "address[]",
            "name": "targets"
          },
          {
            "type": "uint256[]",
            "name": "values"
          },
          {
            "type": "bytes[]",
            "name": "payloads"
          },
          {
            "type": "bytes32",
            "name": "predecessor"
          },
          {
            "type": "bytes32",
            "name": "salt"
          },
          {
            "type": "uint256",
            "name": "delay"
          }
        ],
        "name": "scheduleBatch",
        "payable": false
      },
      "contractInputsValues": {
        "targets": "[\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\"]",
        "values": "[\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\"]",
        "payloads": "[\"0x3659cfe6000000000000000000000000b3d6e885f0c0f5355c7029af328fe923ebf9906c\",\"0xfc0cfeee0000000000000000000000004bc73050916e6d1738286d8863f8fdcffaa879f8\",\"0x6c7561e8000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000000000000000000000000000000000000000000000\",\"0x94828ffd\",\"0x1cfbe7bc0000000000000000000000000000000000000000000000000000000000015180\",\"0xb890ebf60000000000000000000000000000000000000000000000008ac7230489e80000\",\"0x663e64ce0000000000000000000000000000000000000000000000000de0b6b3a7640000\",\"0x773540b300000000000000000000000063cdd3072f25664eec6faeff6daeb668ea4de94a\",\"0x2e9958ab0000000000000000000000005b72992e9cde8c07ce7c8217eb014ec7fd281f03\"]",
        "predecessor": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "salt": "0x2616dbca81fdabc0c564a56e49efb9938f79efe0c65f36f2c1955fb8d2c2d06f",
        "delay": "60"
      }
    }
  ]
}

Execute Batch in Timelock

{
  "version": "1.0",
  "chainId": "146",
  "createdAt": 1736867284,
  "meta": {
    "name": "Transaction Batch",
    "description": "",
    "txBuilderVersion": "1.16.1",
    "createdFromSafeAddress": "0xbe2AB3d3d8F6a32b96414ebbd865dBD276d3d899",
    "createdFromOwnerAddress": ""
  },
  "transactions": [
    {
      "to": "0x31a91336414d3B955E494E7d485a6B06b55FC8fB",
      "value": "0",
      "data": null,
      "contractMethod": {
        "inputs": [
          {
            "type": "address[]",
            "name": "targets"
          },
          {
            "type": "uint256[]",
            "name": "values"
          },
          {
            "type": "bytes[]",
            "name": "payloads"
          },
          {
            "type": "bytes32",
            "name": "predecessor"
          },
          {
            "type": "bytes32",
            "name": "salt"
          }
        ],
        "name": "executeBatch",
        "payable": true
      },
      "contractInputsValues": {
        "targets": "[\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\",\"0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186\"]",
        "values": "[\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\"]",
        "payloads": "[\"0x3659cfe6000000000000000000000000b3d6e885f0c0f5355c7029af328fe923ebf9906c\",\"0xfc0cfeee0000000000000000000000004bc73050916e6d1738286d8863f8fdcffaa879f8\",\"0x6c7561e8000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000000000000000000000000000000000000000000000\",\"0x94828ffd\",\"0x1cfbe7bc0000000000000000000000000000000000000000000000000000000000015180\",\"0xb890ebf60000000000000000000000000000000000000000000000008ac7230489e80000\",\"0x663e64ce0000000000000000000000000000000000000000000000000de0b6b3a7640000\",\"0x773540b300000000000000000000000063cdd3072f25664eec6faeff6daeb668ea4de94a\",\"0x2e9958ab0000000000000000000000005b72992e9cde8c07ce7c8217eb014ec7fd281f03\"]",
        "predecessor": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "salt": "0x2616dbca81fdabc0c564a56e49efb9938f79efe0c65f36f2c1955fb8d2c2d06f"
      }
    }
  ]
}

Deploy checklist

Two reviewers complete the following checklist:

- [ ] All deployed contracts are listed in the deploy PR's description
- [ ] Deployed contract's verified code (and all dependencies) match the code in master
- [ ] Contract constructors have correct arguments
- [ ] The transactions that interacted with the newly deployed contract match the deploy script.
- [ ] Governance proposal matches the deploy script
- [ ] Smoke tests pass after fork test execution of the governance proposal

@naddison36
Copy link
Collaborator Author

I've verified the proxy contracts with

npx hardhat verify --contract contracts/proxies/SonicProxies.sol:OSonicProxy --network sonic 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794
npx hardhat verify --contract contracts/proxies/SonicProxies.sol:WOSonicProxy --network sonic 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1
npx hardhat verify --contract contracts/proxies/SonicProxies.sol:OSonicVaultProxy --network sonic 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794
npx hardhat verify --contract contracts/proxies/SonicProxies.sol:OSonicDripperProxy --network sonic 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03

Unfortunately the Origin Sonic (OS) proxy 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794 was verified with the wrong proxy name. It got OSonicVaultProxy instead of OSonicProxy

Copy link

Warnings
⚠️ 👀 This PR needs at least 2 reviewers

Generated by 🚫 dangerJS against 424f04c

@naddison36
Copy link
Collaborator Author

naddison36 commented Jan 15, 2025

  • All deployed contracts are listed in the deploy PR's description
  • Deployed contract's verified code (and all dependencies) match the code in master
  • Contract constructors have correct arguments
    • OSonicProxy
    • OSonic
    • WOSonicProxy
    • WOSonic
    • OSonicVaultProxy
    • OSonicVaultCore
    • OSonicVaultAdmin
    • OSonicDripperProxy
    • FixedRateDripper
    • OSonicZapper
    • VaultValueChecker
  • The transactions that interacted with the newly deployed contract match the deploy script.
    • The initialize of WOSonicProxy failed
  • Governance proposal matches the deploy script
  • Smoke tests pass after fork test execution of the governance proposal

Diff with the sparrowDom/deploy_001 branch

sol2uml diff 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794 .,node_modules -n sonic
Compared the "OSonicVaultProxy" contract with address 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

sol2uml diff 0x67895dd02C149e0d50C7f399BF31824F84751fDF .,node_modules -n sonic
Compared the "OSonic" contract with address 0x67895dd02C149e0d50C7f399BF31824F84751fDF on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/token/OSonic.sol
match   contracts/token/OUSD.sol

sol2uml diff 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1 .,node_modules -n sonic
Compared the "WOSonicProxy" contract with address 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

sol2uml diff 0x574cb89C0475487f9dbda19f8f426D5F30b58983 .,node_modules -n sonic
Compared the "WOSonic" contract with address 0x574cb89C0475487f9dbda19f8f426D5F30b58983 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/ERC20.sol
match   @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/Context.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/token/OSonic.sol
match   contracts/token/OUSD.sol
match   contracts/token/WOSonic.sol
match   contracts/utils/Initializable.sol
match   lib/openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol
match   lib/openzeppelin/interfaces/IERC4626.sol

sol2uml diff 0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186 .,node_modules -n sonic
Compared the "OSonicVaultProxy" contract with address 0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

sol2uml diff 0xb3D6e885F0c0f5355C7029AF328fE923EBf9906c .,node_modules -n sonic
Compared the "OSonicVaultCore" contract with address 0xb3D6e885F0c0f5355C7029AF328fE923EBf9906c on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IDripper.sol
match   contracts/interfaces/IGetExchangeRateToken.sol
match   contracts/interfaces/IOracle.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/OETHVaultCore.sol
match   contracts/vault/OSonicVaultCore.sol
match   contracts/vault/VaultCore.sol
match   contracts/vault/VaultInitializer.sol

sol2uml diff 0x4Bc73050916e6D1738286D8863F8FdcFFAA879f8 .,node_modules -n sonic
Compared the "OSonicVaultAdmin" contract with address 0x4Bc73050916e6D1738286D8863F8FdcFFAA879f8 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IOracle.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/ISwapper.sol
match   contracts/interfaces/IVault.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/OETHVaultAdmin.sol
match   contracts/vault/OSonicVaultAdmin.sol
match   contracts/vault/VaultAdmin.sol
match   contracts/vault/VaultStorage.sol

sol2uml diff 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03 .,node_modules -n sonic
Compared the "OSonicDripperProxy" contract with address 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

sol2uml diff 0xc5685a88569dcA11f343DB4dB50c8e0A7DDAd992 .,node_modules -n sonic
Compared the "FixedRateDripper" contract with address 0xc5685a88569dcA11f343DB4dB50c8e0A7DDAd992 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/harvest/Dripper.sol
match   contracts/harvest/FixedRateDripper.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/VaultStorage.sol

sol2uml diff 0xe25A2B256ffb3AD73678d5e80DE8d2F6022fAb21 .,node_modules -n sonic
Compared the "OSonicZapper" contract with address 0xe25A2B256ffb3AD73678d5e80DE8d2F6022fAb21 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/interfaces/sonic/IWrappedSonic.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/OSonicZapper.sol
match   contracts/vault/VaultStorage.sol
match   lib/openzeppelin/interfaces/IERC4626.sol

sol2uml diff 0x06f172e6852085eCa886B7f9fd8f7B21Db3D2c40 .,node_modules -n sonic
Compared the "VaultValueChecker" contract with address 0x06f172e6852085eCa886B7f9fd8f7B21Db3D2c40 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IOUSD.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/strategies/VaultValueChecker.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/VaultStorage.sol

@sparrowDom
Copy link
Member

sparrowDom commented Jan 15, 2025

  • All deployed contracts are listed in the deploy PR's description
  • Deployed contract's verified code (and all dependencies) match the code in master
  • Contract constructors have correct arguments
  • The transactions that interacted with the newly deployed contract match the deploy script.
  • Governance proposal matches the deploy script
  • Smoke tests pass after fork test execution of the governance proposal

Diff of the contracts:

npx sol2uml diff 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794 .,node_modules -n sonic
Compared the "OSonicVaultProxy" contract with address 0xb1e25689D55734FD3ffFc939c4C3Eb52DFf8A794 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

npx sol2uml diff 0x67895dd02C149e0d50C7f399BF31824F84751fDF .,node_modules -n sonic
Compared the "OSonic" contract with address 0x67895dd02C149e0d50C7f399BF31824F84751fDF on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/token/OSonic.sol
match   contracts/token/OUSD.sol

npx sol2uml diff 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1 .,node_modules -n sonic
Compared the "WOSonicProxy" contract with address 0x9F0dF7799f6FDAd409300080cfF680f5A23df4b1 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

npx sol2uml diff 0x574cb89C0475487f9dbda19f8f426D5F30b58983 .,node_modules -n sonic
Compared the "WOSonic" contract with address 0x574cb89C0475487f9dbda19f8f426D5F30b58983 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/ERC20.sol
match   @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/Context.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/token/OSonic.sol
match   contracts/token/OUSD.sol
match   contracts/token/WOSonic.sol
match   contracts/utils/Initializable.sol
match   lib/openzeppelin/contracts/token/ERC20/extensions/ERC4626.sol
match   lib/openzeppelin/interfaces/IERC4626.sol

npx sol2uml diff 0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186 .,node_modules -n sonic
Compared the "OSonicVaultProxy" contract with address 0xa3c0eCA00D2B76b4d1F170b0AB3FdeA16C180186 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

npx sol2uml diff 0xb3D6e885F0c0f5355C7029AF328fE923EBf9906c .,node_modules -n sonic
Compared the "OSonicVaultCore" contract with address 0xb3D6e885F0c0f5355C7029AF328fE923EBf9906c on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IDripper.sol
match   contracts/interfaces/IGetExchangeRateToken.sol
match   contracts/interfaces/IOracle.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/OETHVaultCore.sol
match   contracts/vault/OSonicVaultCore.sol
match   contracts/vault/VaultCore.sol
match   contracts/vault/VaultInitializer.sol
match   contracts/vault/VaultStorage.sol

npx sol2uml diff 0x4Bc73050916e6D1738286D8863F8FdcFFAA879f8 .,node_modules -n sonic
Compared the "OSonicVaultAdmin" contract with address 0x4Bc73050916e6D1738286D8863F8FdcFFAA879f8 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IOracle.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/ISwapper.sol
match   contracts/interfaces/IVault.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/OETHVaultAdmin.sol
match   contracts/vault/OSonicVaultAdmin.sol
match   contracts/vault/VaultAdmin.sol
match   contracts/vault/VaultStorage.sol

npx sol2uml diff 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03 .,node_modules -n sonic
Compared the "OSonicDripperProxy" contract with address 0x5b72992e9CDe8C07CE7C8217eB014EC7fD281f03 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/SonicProxies.sol

npx sol2uml diff 0xc5685a88569dcA11f343DB4dB50c8e0A7DDAd992 .,node_modules -n sonic
Compared the "FixedRateDripper" contract with address 0xc5685a88569dcA11f343DB4dB50c8e0A7DDAd992 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/harvest/Dripper.sol
match   contracts/harvest/FixedRateDripper.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/VaultStorage.sol

npx sol2uml diff 0xe25A2B256ffb3AD73678d5e80DE8d2F6022fAb21 .,node_modules -n sonic
Compared the "OSonicZapper" contract with address 0xe25A2B256ffb3AD73678d5e80DE8d2F6022fAb21 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/interfaces/sonic/IWrappedSonic.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/OSonicZapper.sol
match   contracts/vault/VaultStorage.sol
match   lib/openzeppelin/interfaces/IERC4626.sol

npx sol2uml diff 0x06f172e6852085eCa886B7f9fd8f7B21Db3D2c40 .,node_modules -n sonic
Compared the "VaultValueChecker" contract with address 0x06f172e6852085eCa886B7f9fd8f7B21Db3D2c40 on sonic
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeCast.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IOUSD.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/strategies/VaultValueChecker.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/vault/VaultStorage.sol

@sparrowDom sparrowDom merged commit 081d79d into nicka/sonic Jan 15, 2025
12 of 19 checks passed
@sparrowDom sparrowDom deleted the sparrowDom/deploy_001 branch January 15, 2025 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants