@venusprotocol/protocol-reserve 2.3.0-dev.2 → 2.3.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +1 -1
- package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.dbg.json +1 -1
- package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +1 -1
- package/artifacts/build-info/{9217ef3a988df6e25dbcfe75e7ce31e2.json → 68577ed43187fc5e56ed710d5e4ab150.json} +1 -1
- package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +1 -1
- package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.dbg.json +1 -1
- package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.json +13 -2
- package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.dbg.json +1 -1
- package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +1 -1
- package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.dbg.json +1 -1
- package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.dbg.json +1 -1
- package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.dbg.json +1 -1
- package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.dbg.json +1 -1
- package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/Proxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Address.sol/Address.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/Context.sol/Context.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/openzeppelin/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
- package/artifacts/hardhat-deploy/solc_0.8/proxy/OptimizedTransparentUpgradeableProxy.sol/OptimizedTransparentUpgradeableProxy.dbg.json +1 -1
- package/contracts/ProtocolReserve/RiskFundV2.sol +17 -8
- package/deployments/bscmainnet/RiskFundV2_Implementation.json +48 -37
- package/deployments/bscmainnet/solcInputs/bc6ad826a18af16b32a27323ee929a4d.json +82 -0
- package/deployments/bscmainnet.json +6 -1
- package/deployments/bscmainnet_addresses.json +1 -1
- package/deployments/bsctestnet/RiskFundV2_Implementation.json +108 -33
- package/deployments/bsctestnet/solcInputs/bc6ad826a18af16b32a27323ee929a4d.json +82 -0
- package/deployments/bsctestnet.json +54 -1
- package/deployments/bsctestnet_addresses.json +1 -1
- package/dist/typechain/factories/RiskFundV2__factory.d.ts +1 -1
- package/dist/typechain/factories/RiskFundV2__factory.d.ts.map +1 -1
- package/dist/typechain/factories/RiskFundV2__factory.js +12 -1
- package/dist/typechain/factories/RiskFundV2__factory.js.map +1 -1
- package/package.json +1 -1
- package/typechain/RiskFundV2.d.ts +27 -9
- package/typechain/factories/RiskFundV2__factory.ts +12 -1
|
@@ -287,6 +287,12 @@
|
|
|
287
287
|
"name": "comptroller",
|
|
288
288
|
"type": "address"
|
|
289
289
|
},
|
|
290
|
+
{
|
|
291
|
+
"indexed": true,
|
|
292
|
+
"internalType": "address",
|
|
293
|
+
"name": "receiver",
|
|
294
|
+
"type": "address"
|
|
295
|
+
},
|
|
290
296
|
{
|
|
291
297
|
"indexed": false,
|
|
292
298
|
"internalType": "uint256",
|
|
@@ -551,6 +557,11 @@
|
|
|
551
557
|
"name": "comptroller",
|
|
552
558
|
"type": "address"
|
|
553
559
|
},
|
|
560
|
+
{
|
|
561
|
+
"internalType": "address",
|
|
562
|
+
"name": "receiver",
|
|
563
|
+
"type": "address"
|
|
564
|
+
},
|
|
554
565
|
{
|
|
555
566
|
"internalType": "uint256",
|
|
556
567
|
"name": "amount",
|
|
@@ -623,8 +634,8 @@
|
|
|
623
634
|
"type": "function"
|
|
624
635
|
}
|
|
625
636
|
],
|
|
626
|
-
"bytecode": "0x6080604052348015600f57600080fd5b506118a38061001f6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c806377d4937f116100cd578063b4a0bdf311610081578063c8ecc0d311610066578063c8ecc0d3146102ff578063e30c397814610313578063f2fde38b1461032457600080fd5b8063b4a0bdf3146102e5578063be26317e146102f657600080fd5b8063855a8dd2116100b2578063855a8dd2146102865780638da5cb5b14610299578063a69bd19e146102aa57600080fd5b806377d4937f1461026b57806379ba50971461027e57600080fd5b806353ac353711610124578063601bb5a911610109578063601bb5a91461023d57806364aff9ec14610250578063715018a61461026357600080fd5b806353ac3537146101ff5780635dbe35331461021257600080fd5b806319b1faef1161015557806319b1faef146101ac5780632e688141146101d85780632eef9172146101eb57600080fd5b80630a9837c5146101715780630e32cb8614610197575b600080fd5b61018461017f3660046114df565b610337565b6040519081526020015b60405180910390f35b6101aa6101a536600461150b565b610499565b005b61012e546101c0906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b6101aa6101e636600461150b565b6104ad565b610163546101c0906001600160a01b031681565b6101aa61020d36600461152f565b610534565b610184610220366004611570565b60ca60209081526000928352604080842090915290825290205481565b6101aa61024b36600461150b565b610609565b6101aa61025e36600461152f565b610690565b6101aa610738565b6101aa61027936600461150b565b61074c565b6101aa6107d3565b6101aa61029436600461152f565b610878565b6033546001600160a01b03166101c0565b6101846102b836600461150b565b6001600160a01b03908116600090815260ca6020908152604080832061012d549094168352929052205490565b6097546001600160a01b03166101c0565b61018460fb5481565b61012d546101c0906001600160a01b031681565b6065546001600160a01b03166101c0565b6101aa61033236600461150b565b610999565b6000610341610a22565b6001600160a01b03838116600090815260ca6020908152604080832061012d548516845290915290205461012e5490911633146103aa576040517fe7792c3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80831115610402576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101849052604481018290526064015b60405180910390fd5b6001600160a01b03808516600090815260ca6020908152604080832061012d8054861685529252909120858403905561012e54905461044692908116911685610a97565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161048191815260200190565b60405180910390a25050600161013155805b92915050565b6104a1610b17565b6104aa81610b8b565b50565b6104b5610b17565b6104be81610c9a565b61012d546040516001600160a01b038084169216907f5fa61583da12070720613fefdd68cc6c0e464a71e009742526bd2b2e0ac62cd290600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610163546001600160a01b03163314610579576040517fece95bc800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808416600090815260ca60209081526040808320938616835292905290812080548392906105b09084906115d8565b92505081905550816001600160a01b0316836001600160a01b03167f17452316fd883c456b01c6722a103031ccd3cf17a1dabdbf96cd1109652d6110836040516105fc91815260200190565b60405180910390a3505050565b610611610b17565b61061a81610c9a565b610163546040516001600160a01b038084169216907f49ca267ed5631dd7b16589efad418137b8fb106674777fc37d2cb82e853dbd2790600090a361016380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610698610b17565b6106a0610a22565b6106a983610c9a565b6106b282610c9a565b6106bb81610cda565b826106c68183610d14565b6106da6001600160a01b0382168484610a97565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161071f91815260200190565b60405180910390a350610733600161013155565b505050565b610740610b17565b61074a6000611138565b565b610754610b17565b61075d81610c9a565b61012e546040516001600160a01b038084169216907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60655433906001600160a01b0316811461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016103f9565b6104aa81611138565b610880610b17565b610888610a22565b61089183610c9a565b61089a82610c9a565b6108a381610cda565b6001600160a01b03808316600090815260ca60209081526040808320938716835292905220548082111561091c576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101839052604481018290526064016103f9565b6001600160a01b03808416600090815260ca602090815260408083209388168084529390915290208383039055610954908484610a97565b826001600160a01b0316846001600160a01b03167f0e8a97dff226f3ada9da954f9bd38f73280b03ef851bfc7c97db1343f07bdbdc8460405161071f91815260200190565b6109a1610b17565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556109ea6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60026101315403610a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103f9565b600261013155565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610733908490611169565b6033546001600160a01b0316331461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f9565b6001600160a01b038116610c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103f9565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6001600160a01b0381166104aa576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036104aa576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9891906115eb565b905080821115610dd4576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610163546040517f5c39f4670000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526000921690635c39f46790602401600060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e7f9190810190611643565b8051909150600090815b81811015610f085760ca6000858381518110610ea757610ea7611726565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000205483610efe91906115d8565b9250600101610e89565b506000610f158386611755565b90508581101561112f578086036000805b8481101561112b5760ca6000888381518110610f4457610f44611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002054600014611123576000610fa4600187611755565b82101561103657868a60ca60008b8681518110610fc357610fc3611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b03168152602001908152602001600020546110199190611768565b611023919061177f565b905061102f81846115d8565b9250611043565b6110408385611755565b90505b8060ca60008a858151811061105a5761105a611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110b49190611755565b925050819055508a6001600160a01b03168883815181106110d7576110d7611726565b60200260200101516001600160a01b03167fdfbd88fdb255ea04a0084e45259969bdf724b3fbd610a114da4a0dd51bd843208360405161111991815260200190565b60405180910390a3505b600101610f26565b5050505b50505050505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104aa8161126b565b60006111be826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112d59092919063ffffffff16565b90508051600014806111df5750808060200190518101906111df91906117ba565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103f9565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606112e484846000856112ec565b949350505050565b60608247101561137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103f9565b600080866001600160a01b0316858760405161139a9190611800565b60006040518083038185875af1925050503d80600081146113d7576040519150601f19603f3d011682016040523d82523d6000602084013e6113dc565b606091505b50915091506113ed878383876113f8565b979650505050505050565b6060831561148157825160000361147a576001600160a01b0385163b61147a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103f9565b50816112e4565b6112e483838151156114965781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f9919061181c565b6001600160a01b03811681146104aa57600080fd5b600080604083850312156114f257600080fd5b82356114fd816114ca565b946020939093013593505050565b60006020828403121561151d57600080fd5b8135611528816114ca565b9392505050565b60008060006060848603121561154457600080fd5b833561154f816114ca565b9250602084013561155f816114ca565b929592945050506040919091013590565b6000806040838503121561158357600080fd5b823561158e816114ca565b9150602083013561159e816114ca565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610493576104936115a9565b6000602082840312156115fd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b805161163e816114ca565b919050565b6000602080838503121561165657600080fd5b825167ffffffffffffffff8082111561166e57600080fd5b818501915085601f83011261168257600080fd5b81518181111561169457611694611604565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156116d7576116d7611604565b6040529182528482019250838101850191888311156116f557600080fd5b938501935b8285101561171a5761170b85611633565b845293850193928501926116fa565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b81810381811115610493576104936115a9565b8082028115828204841417610493576104936115a9565b6000826117b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156117cc57600080fd5b8151801515811461152857600080fd5b60005b838110156117f75781810151838201526020016117df565b50506000910152565b600082516118128184602087016117dc565b9190910192915050565b602081526000825180602084015261183b8160408501602087016117dc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220137f04e1ed05e0dee96822030cdd7003852b62bb6085198e47e92910cdb38f2564736f6c63430008190033",
|
|
627
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c806377d4937f116100cd578063b4a0bdf311610081578063c8ecc0d311610066578063c8ecc0d3146102ff578063e30c397814610313578063f2fde38b1461032457600080fd5b8063b4a0bdf3146102e5578063be26317e146102f657600080fd5b8063855a8dd2116100b2578063855a8dd2146102865780638da5cb5b14610299578063a69bd19e146102aa57600080fd5b806377d4937f1461026b57806379ba50971461027e57600080fd5b806353ac353711610124578063601bb5a911610109578063601bb5a91461023d57806364aff9ec14610250578063715018a61461026357600080fd5b806353ac3537146101ff5780635dbe35331461021257600080fd5b806319b1faef1161015557806319b1faef146101ac5780632e688141146101d85780632eef9172146101eb57600080fd5b80630a9837c5146101715780630e32cb8614610197575b600080fd5b61018461017f3660046114df565b610337565b6040519081526020015b60405180910390f35b6101aa6101a536600461150b565b610499565b005b61012e546101c0906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b6101aa6101e636600461150b565b6104ad565b610163546101c0906001600160a01b031681565b6101aa61020d36600461152f565b610534565b610184610220366004611570565b60ca60209081526000928352604080842090915290825290205481565b6101aa61024b36600461150b565b610609565b6101aa61025e36600461152f565b610690565b6101aa610738565b6101aa61027936600461150b565b61074c565b6101aa6107d3565b6101aa61029436600461152f565b610878565b6033546001600160a01b03166101c0565b6101846102b836600461150b565b6001600160a01b03908116600090815260ca6020908152604080832061012d549094168352929052205490565b6097546001600160a01b03166101c0565b61018460fb5481565b61012d546101c0906001600160a01b031681565b6065546001600160a01b03166101c0565b6101aa61033236600461150b565b610999565b6000610341610a22565b6001600160a01b03838116600090815260ca6020908152604080832061012d548516845290915290205461012e5490911633146103aa576040517fe7792c3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80831115610402576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101849052604481018290526064015b60405180910390fd5b6001600160a01b03808516600090815260ca6020908152604080832061012d8054861685529252909120858403905561012e54905461044692908116911685610a97565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161048191815260200190565b60405180910390a25050600161013155805b92915050565b6104a1610b17565b6104aa81610b8b565b50565b6104b5610b17565b6104be81610c9a565b61012d546040516001600160a01b038084169216907f5fa61583da12070720613fefdd68cc6c0e464a71e009742526bd2b2e0ac62cd290600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610163546001600160a01b03163314610579576040517fece95bc800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808416600090815260ca60209081526040808320938616835292905290812080548392906105b09084906115d8565b92505081905550816001600160a01b0316836001600160a01b03167f17452316fd883c456b01c6722a103031ccd3cf17a1dabdbf96cd1109652d6110836040516105fc91815260200190565b60405180910390a3505050565b610611610b17565b61061a81610c9a565b610163546040516001600160a01b038084169216907f49ca267ed5631dd7b16589efad418137b8fb106674777fc37d2cb82e853dbd2790600090a361016380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610698610b17565b6106a0610a22565b6106a983610c9a565b6106b282610c9a565b6106bb81610cda565b826106c68183610d14565b6106da6001600160a01b0382168484610a97565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161071f91815260200190565b60405180910390a350610733600161013155565b505050565b610740610b17565b61074a6000611138565b565b610754610b17565b61075d81610c9a565b61012e546040516001600160a01b038084169216907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60655433906001600160a01b0316811461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016103f9565b6104aa81611138565b610880610b17565b610888610a22565b61089183610c9a565b61089a82610c9a565b6108a381610cda565b6001600160a01b03808316600090815260ca60209081526040808320938716835292905220548082111561091c576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101839052604481018290526064016103f9565b6001600160a01b03808416600090815260ca602090815260408083209388168084529390915290208383039055610954908484610a97565b826001600160a01b0316846001600160a01b03167f0e8a97dff226f3ada9da954f9bd38f73280b03ef851bfc7c97db1343f07bdbdc8460405161071f91815260200190565b6109a1610b17565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556109ea6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60026101315403610a8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103f9565b600261013155565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610733908490611169565b6033546001600160a01b0316331461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f9565b6001600160a01b038116610c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103f9565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6001600160a01b0381166104aa576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036104aa576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9891906115eb565b905080821115610dd4576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610163546040517f5c39f4670000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526000921690635c39f46790602401600060405180830381865afa158015610e39573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e7f9190810190611643565b8051909150600090815b81811015610f085760ca6000858381518110610ea757610ea7611726565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000205483610efe91906115d8565b9250600101610e89565b506000610f158386611755565b90508581101561112f578086036000805b8481101561112b5760ca6000888381518110610f4457610f44611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002054600014611123576000610fa4600187611755565b82101561103657868a60ca60008b8681518110610fc357610fc3611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b03168152602001908152602001600020546110199190611768565b611023919061177f565b905061102f81846115d8565b9250611043565b6110408385611755565b90505b8060ca60008a858151811061105a5761105a611726565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110b49190611755565b925050819055508a6001600160a01b03168883815181106110d7576110d7611726565b60200260200101516001600160a01b03167fdfbd88fdb255ea04a0084e45259969bdf724b3fbd610a114da4a0dd51bd843208360405161111991815260200190565b60405180910390a3505b600101610f26565b5050505b50505050505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104aa8161126b565b60006111be826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112d59092919063ffffffff16565b90508051600014806111df5750808060200190518101906111df91906117ba565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103f9565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606112e484846000856112ec565b949350505050565b60608247101561137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103f9565b600080866001600160a01b0316858760405161139a9190611800565b60006040518083038185875af1925050503d80600081146113d7576040519150601f19603f3d011682016040523d82523d6000602084013e6113dc565b606091505b50915091506113ed878383876113f8565b979650505050505050565b6060831561148157825160000361147a576001600160a01b0385163b61147a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103f9565b50816112e4565b6112e483838151156114965781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f9919061181c565b6001600160a01b03811681146104aa57600080fd5b600080604083850312156114f257600080fd5b82356114fd816114ca565b946020939093013593505050565b60006020828403121561151d57600080fd5b8135611528816114ca565b9392505050565b60008060006060848603121561154457600080fd5b833561154f816114ca565b9250602084013561155f816114ca565b929592945050506040919091013590565b6000806040838503121561158357600080fd5b823561158e816114ca565b9150602083013561159e816114ca565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610493576104936115a9565b6000602082840312156115fd57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b805161163e816114ca565b919050565b6000602080838503121561165657600080fd5b825167ffffffffffffffff8082111561166e57600080fd5b818501915085601f83011261168257600080fd5b81518181111561169457611694611604565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156116d7576116d7611604565b6040529182528482019250838101850191888311156116f557600080fd5b938501935b8285101561171a5761170b85611633565b845293850193928501926116fa565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b81810381811115610493576104936115a9565b8082028115828204841417610493576104936115a9565b6000826117b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156117cc57600080fd5b8151801515811461152857600080fd5b60005b838110156117f75781810151838201526020016117df565b50506000910152565b600082516118128184602087016117dc565b9190910192915050565b602081526000825180602084015261183b8160408501602087016117dc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220137f04e1ed05e0dee96822030cdd7003852b62bb6085198e47e92910cdb38f2564736f6c63430008190033",
|
|
637
|
+
"bytecode": "0x6080604052348015600f57600080fd5b50611aa08061001f6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c806377d4937f116100cd578063b4a0bdf311610081578063c8ecc0d311610066578063c8ecc0d3146102ff578063e30c397814610313578063f2fde38b1461032457600080fd5b8063b4a0bdf3146102e5578063be26317e146102f657600080fd5b80638da5cb5b116100b25780638da5cb5b14610286578063998f607114610297578063a69bd19e146102aa57600080fd5b806377d4937f1461026b57806379ba50971461027e57600080fd5b806353ac353711610124578063601bb5a911610109578063601bb5a91461023d57806364aff9ec14610250578063715018a61461026357600080fd5b806353ac3537146101ff5780635dbe35331461021257600080fd5b806319b1faef1161015557806319b1faef146101ac5780632e688141146101d85780632eef9172146101eb57600080fd5b80630a9837c5146101715780630e32cb8614610197575b600080fd5b61018461017f3660046115f5565b610337565b6040519081526020015b60405180910390f35b6101aa6101a5366004611621565b610499565b005b61012e546101c0906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b6101aa6101e6366004611621565b6104ad565b610163546101c0906001600160a01b031681565b6101aa61020d366004611645565b610534565b610184610220366004611686565b60ca60209081526000928352604080842090915290825290205481565b6101aa61024b366004611621565b610609565b6101aa61025e366004611645565b610690565b6101aa610738565b6101aa610279366004611621565b61074c565b6101aa6107d3565b6033546001600160a01b03166101c0565b6101aa6102a53660046116bf565b610878565b6101846102b8366004611621565b6001600160a01b03908116600090815260ca6020908152604080832061012d549094168352929052205490565b6097546001600160a01b03166101c0565b61018460fb5481565b61012d546101c0906001600160a01b031681565b6065546001600160a01b03166101c0565b6101aa610332366004611621565b6109df565b6000610341610a68565b6001600160a01b03838116600090815260ca6020908152604080832061012d548516845290915290205461012e5490911633146103aa576040517fe7792c3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80831115610402576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101849052604481018290526064015b60405180910390fd5b6001600160a01b03808516600090815260ca6020908152604080832061012d8054861685529252909120858403905561012e54905461044692908116911685610add565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161048191815260200190565b60405180910390a25050600161013155805b92915050565b6104a1610b5d565b6104aa81610bd1565b50565b6104b5610b5d565b6104be81610ce0565b61012d546040516001600160a01b038084169216907f5fa61583da12070720613fefdd68cc6c0e464a71e009742526bd2b2e0ac62cd290600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610163546001600160a01b03163314610579576040517fece95bc800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808416600090815260ca60209081526040808320938616835292905290812080548392906105b090849061173f565b92505081905550816001600160a01b0316836001600160a01b03167f17452316fd883c456b01c6722a103031ccd3cf17a1dabdbf96cd1109652d6110836040516105fc91815260200190565b60405180910390a3505050565b610611610b5d565b61061a81610ce0565b610163546040516001600160a01b038084169216907f49ca267ed5631dd7b16589efad418137b8fb106674777fc37d2cb82e853dbd2790600090a361016380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610698610b5d565b6106a0610a68565b6106a983610ce0565b6106b282610ce0565b6106bb81610d20565b826106c68183610d5a565b6106da6001600160a01b0382168484610add565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161071f91815260200190565b60405180910390a350610733600161013155565b505050565b610740610b5d565b61074a600061117e565b565b610754610b5d565b61075d81610ce0565b61012e546040516001600160a01b038084169216907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60655433906001600160a01b0316811461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016103f9565b6104aa8161117e565b610880610a68565b6108a1604051806060016040528060338152602001611a38603391396111af565b6108aa84610ce0565b6108b383610ce0565b6108bc82610ce0565b6108c581610d20565b6001600160a01b03808416600090815260ca60209081526040808320938816835292905220548082111561093e576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101839052604481018290526064016103f9565b6001600160a01b03808516600090815260ca602090815260408083209389168084529390915290208383039055610976908484610add565b826001600160a01b0316846001600160a01b0316866001600160a01b03167f6c4a80b6e24c0c63564e0dd5b64bde86842de007bcfdc0a14b829198f18541b7856040516109c591815260200190565b60405180910390a4506109d9600161013155565b50505050565b6109e7610b5d565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610a306033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60026101315403610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103f9565b600261013155565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261073390849061127f565b6033546001600160a01b0316331461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f9565b6001600160a01b038116610c67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103f9565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6001600160a01b0381166104aa576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036104aa576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611752565b905080821115610e1a576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610163546040517f5c39f4670000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526000921690635c39f46790602401600060405180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ec591908101906117aa565b8051909150600090815b81811015610f4e5760ca6000858381518110610eed57610eed61188d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000205483610f44919061173f565b9250600101610ecf565b506000610f5b83866118bc565b905085811015611175578086036000805b848110156111715760ca6000888381518110610f8a57610f8a61188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002054600014611169576000610fea6001876118bc565b82101561107c57868a60ca60008b86815181106110095761100961188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b031681526020019081526020016000205461105f91906118cf565b61106991906118e6565b9050611075818461173f565b9250611089565b61108683856118bc565b90505b8060ca60008a85815181106110a0576110a061188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110fa91906118bc565b925050819055508a6001600160a01b031688838151811061111d5761111d61188d565b60200260200101516001600160a01b03167fdfbd88fdb255ea04a0084e45259969bdf724b3fbd610a114da4a0dd51bd843208360405161115f91815260200190565b60405180910390a3505b600101610f6c565b5050505b50505050505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104aa81611381565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906111fb903390869060040161198f565b602060405180830381865afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c91906119b1565b90508061127b573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016103f9939291906119d3565b5050565b60006112d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113eb9092919063ffffffff16565b90508051600014806112f55750808060200190518101906112f591906119b1565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103f9565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606113fa8484600085611402565b949350505050565b606082471015611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103f9565b600080866001600160a01b031685876040516114b09190611a08565b60006040518083038185875af1925050503d80600081146114ed576040519150601f19603f3d011682016040523d82523d6000602084013e6114f2565b606091505b50915091506115038783838761150e565b979650505050505050565b60608315611597578251600003611590576001600160a01b0385163b611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103f9565b50816113fa565b6113fa83838151156115ac5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f99190611a24565b6001600160a01b03811681146104aa57600080fd5b6000806040838503121561160857600080fd5b8235611613816115e0565b946020939093013593505050565b60006020828403121561163357600080fd5b813561163e816115e0565b9392505050565b60008060006060848603121561165a57600080fd5b8335611665816115e0565b92506020840135611675816115e0565b929592945050506040919091013590565b6000806040838503121561169957600080fd5b82356116a4816115e0565b915060208301356116b4816115e0565b809150509250929050565b600080600080608085870312156116d557600080fd5b84356116e0816115e0565b935060208501356116f0816115e0565b92506040850135611700816115e0565b9396929550929360600135925050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561049357610493611710565b60006020828403121561176457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516117a5816115e0565b919050565b600060208083850312156117bd57600080fd5b825167ffffffffffffffff808211156117d557600080fd5b818501915085601f8301126117e957600080fd5b8151818111156117fb576117fb61176b565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561183e5761183e61176b565b60405291825284820192508381018501918883111561185c57600080fd5b938501935b82851015611881576118728561179a565b84529385019392850192611861565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8181038181111561049357610493611710565b808202811582820484141761049357610493611710565b60008261191c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b8381101561193c578181015183820152602001611924565b50506000910152565b6000815180845261195d816020860160208601611921565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b03831681526040602082015260006113fa6040830184611945565b6000602082840312156119c357600080fd5b8151801515811461163e57600080fd5b60006001600160a01b038086168352808516602084015250606060408301526119ff6060830184611945565b95945050505050565b60008251611a1a818460208701611921565b9190910192915050565b60208152600061163e602083018461194556fe7377656570546f6b656e46726f6d506f6f6c28616464726573732c616464726573732c616464726573732c75696e7432353629a26469706673582212207fdc4fe808b68c5995d320335a11ca80c7e4a7caee73aa44f6eef76f8e57b0c364736f6c63430008190033",
|
|
638
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c806377d4937f116100cd578063b4a0bdf311610081578063c8ecc0d311610066578063c8ecc0d3146102ff578063e30c397814610313578063f2fde38b1461032457600080fd5b8063b4a0bdf3146102e5578063be26317e146102f657600080fd5b80638da5cb5b116100b25780638da5cb5b14610286578063998f607114610297578063a69bd19e146102aa57600080fd5b806377d4937f1461026b57806379ba50971461027e57600080fd5b806353ac353711610124578063601bb5a911610109578063601bb5a91461023d57806364aff9ec14610250578063715018a61461026357600080fd5b806353ac3537146101ff5780635dbe35331461021257600080fd5b806319b1faef1161015557806319b1faef146101ac5780632e688141146101d85780632eef9172146101eb57600080fd5b80630a9837c5146101715780630e32cb8614610197575b600080fd5b61018461017f3660046115f5565b610337565b6040519081526020015b60405180910390f35b6101aa6101a5366004611621565b610499565b005b61012e546101c0906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b6101aa6101e6366004611621565b6104ad565b610163546101c0906001600160a01b031681565b6101aa61020d366004611645565b610534565b610184610220366004611686565b60ca60209081526000928352604080842090915290825290205481565b6101aa61024b366004611621565b610609565b6101aa61025e366004611645565b610690565b6101aa610738565b6101aa610279366004611621565b61074c565b6101aa6107d3565b6033546001600160a01b03166101c0565b6101aa6102a53660046116bf565b610878565b6101846102b8366004611621565b6001600160a01b03908116600090815260ca6020908152604080832061012d549094168352929052205490565b6097546001600160a01b03166101c0565b61018460fb5481565b61012d546101c0906001600160a01b031681565b6065546001600160a01b03166101c0565b6101aa610332366004611621565b6109df565b6000610341610a68565b6001600160a01b03838116600090815260ca6020908152604080832061012d548516845290915290205461012e5490911633146103aa576040517fe7792c3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80831115610402576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101849052604481018290526064015b60405180910390fd5b6001600160a01b03808516600090815260ca6020908152604080832061012d8054861685529252909120858403905561012e54905461044692908116911685610add565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161048191815260200190565b60405180910390a25050600161013155805b92915050565b6104a1610b5d565b6104aa81610bd1565b50565b6104b5610b5d565b6104be81610ce0565b61012d546040516001600160a01b038084169216907f5fa61583da12070720613fefdd68cc6c0e464a71e009742526bd2b2e0ac62cd290600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610163546001600160a01b03163314610579576040517fece95bc800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808416600090815260ca60209081526040808320938616835292905290812080548392906105b090849061173f565b92505081905550816001600160a01b0316836001600160a01b03167f17452316fd883c456b01c6722a103031ccd3cf17a1dabdbf96cd1109652d6110836040516105fc91815260200190565b60405180910390a3505050565b610611610b5d565b61061a81610ce0565b610163546040516001600160a01b038084169216907f49ca267ed5631dd7b16589efad418137b8fb106674777fc37d2cb82e853dbd2790600090a361016380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610698610b5d565b6106a0610a68565b6106a983610ce0565b6106b282610ce0565b6106bb81610d20565b826106c68183610d5a565b6106da6001600160a01b0382168484610add565b826001600160a01b0316846001600160a01b03167f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d58460405161071f91815260200190565b60405180910390a350610733600161013155565b505050565b610740610b5d565b61074a600061117e565b565b610754610b5d565b61075d81610ce0565b61012e546040516001600160a01b038084169216907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60655433906001600160a01b0316811461086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016103f9565b6104aa8161117e565b610880610a68565b6108a1604051806060016040528060338152602001611a38603391396111af565b6108aa84610ce0565b6108b383610ce0565b6108bc82610ce0565b6108c581610d20565b6001600160a01b03808416600090815260ca60209081526040808320938816835292905220548082111561093e576040517f5f1b50b80000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101839052604481018290526064016103f9565b6001600160a01b03808516600090815260ca602090815260408083209389168084529390915290208383039055610976908484610add565b826001600160a01b0316846001600160a01b0316866001600160a01b03167f6c4a80b6e24c0c63564e0dd5b64bde86842de007bcfdc0a14b829198f18541b7856040516109c591815260200190565b60405180910390a4506109d9600161013155565b50505050565b6109e7610b5d565b606580546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610a306033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60026101315403610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103f9565b600261013155565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261073390849061127f565b6033546001600160a01b0316331461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f9565b6001600160a01b038116610c67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103f9565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6001600160a01b0381166104aa576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036104aa576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611752565b905080821115610e1a576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610163546040517f5c39f4670000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526000921690635c39f46790602401600060405180830381865afa158015610e7f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ec591908101906117aa565b8051909150600090815b81811015610f4e5760ca6000858381518110610eed57610eed61188d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000205483610f44919061173f565b9250600101610ecf565b506000610f5b83866118bc565b905085811015611175578086036000805b848110156111715760ca6000888381518110610f8a57610f8a61188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008b6001600160a01b03166001600160a01b0316815260200190815260200160002054600014611169576000610fea6001876118bc565b82101561107c57868a60ca60008b86815181106110095761100961188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b031681526020019081526020016000205461105f91906118cf565b61106991906118e6565b9050611075818461173f565b9250611089565b61108683856118bc565b90505b8060ca60008a85815181106110a0576110a061188d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110fa91906118bc565b925050819055508a6001600160a01b031688838151811061111d5761111d61188d565b60200260200101516001600160a01b03167fdfbd88fdb255ea04a0084e45259969bdf724b3fbd610a114da4a0dd51bd843208360405161115f91815260200190565b60405180910390a3505b600101610f6c565b5050505b50505050505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104aa81611381565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906111fb903390869060040161198f565b602060405180830381865afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c91906119b1565b90508061127b573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016103f9939291906119d3565b5050565b60006112d4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113eb9092919063ffffffff16565b90508051600014806112f55750808060200190518101906112f591906119b1565b610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103f9565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606113fa8484600085611402565b949350505050565b606082471015611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103f9565b600080866001600160a01b031685876040516114b09190611a08565b60006040518083038185875af1925050503d80600081146114ed576040519150601f19603f3d011682016040523d82523d6000602084013e6114f2565b606091505b50915091506115038783838761150e565b979650505050505050565b60608315611597578251600003611590576001600160a01b0385163b611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103f9565b50816113fa565b6113fa83838151156115ac5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f99190611a24565b6001600160a01b03811681146104aa57600080fd5b6000806040838503121561160857600080fd5b8235611613816115e0565b946020939093013593505050565b60006020828403121561163357600080fd5b813561163e816115e0565b9392505050565b60008060006060848603121561165a57600080fd5b8335611665816115e0565b92506020840135611675816115e0565b929592945050506040919091013590565b6000806040838503121561169957600080fd5b82356116a4816115e0565b915060208301356116b4816115e0565b809150509250929050565b600080600080608085870312156116d557600080fd5b84356116e0816115e0565b935060208501356116f0816115e0565b92506040850135611700816115e0565b9396929550929360600135925050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561049357610493611710565b60006020828403121561176457600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516117a5816115e0565b919050565b600060208083850312156117bd57600080fd5b825167ffffffffffffffff808211156117d557600080fd5b818501915085601f8301126117e957600080fd5b8151818111156117fb576117fb61176b565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561183e5761183e61176b565b60405291825284820192508381018501918883111561185c57600080fd5b938501935b82851015611881576118728561179a565b84529385019392850192611861565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8181038181111561049357610493611710565b808202811582820484141761049357610493611710565b60008261191c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b8381101561193c578181015183820152602001611924565b50506000910152565b6000815180845261195d816020860160208601611921565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b03831681526040602082015260006113fa6040830184611945565b6000602082840312156119c357600080fd5b8151801515811461163e57600080fd5b60006001600160a01b038086168352808516602084015250606060408301526119ff6060830184611945565b95945050505050565b60008251611a1a818460208701611921565b9190910192915050565b60208152600061163e602083018461194556fe7377656570546f6b656e46726f6d506f6f6c28616464726573732c616464726573732c616464726573732c75696e7432353629a26469706673582212207fdc4fe808b68c5995d320335a11ca80c7e4a7caee73aa44f6eef76f8e57b0c364736f6c63430008190033",
|
|
628
639
|
"linkReferences": {},
|
|
629
640
|
"deployedLinkReferences": {}
|
|
630
641
|
}
|
|
@@ -40,7 +40,12 @@ contract RiskFundV2 is AccessControlledV8, RiskFundV2Storage, IRiskFund {
|
|
|
40
40
|
event SweepToken(address indexed token, address indexed to, uint256 amount);
|
|
41
41
|
|
|
42
42
|
/// @notice Event emitted when tokens are swept and transferred from pool
|
|
43
|
-
event SweepTokenFromPool(
|
|
43
|
+
event SweepTokenFromPool(
|
|
44
|
+
address indexed token,
|
|
45
|
+
address indexed comptroller,
|
|
46
|
+
address indexed receiver,
|
|
47
|
+
uint256 amount
|
|
48
|
+
);
|
|
44
49
|
|
|
45
50
|
/// @notice Error is thrown when updatePoolState is not called by riskFundConverter
|
|
46
51
|
error InvalidRiskFundConverter();
|
|
@@ -146,19 +151,23 @@ contract RiskFundV2 is AccessControlledV8, RiskFundV2Storage, IRiskFund {
|
|
|
146
151
|
|
|
147
152
|
/// @notice Function to sweep token from pool
|
|
148
153
|
/// @param tokenAddress Address of the asset(token)
|
|
149
|
-
/// @param comptroller Pool address
|
|
154
|
+
/// @param comptroller Pool address that the assets belong to
|
|
155
|
+
/// @param receiver The receiver of the funds
|
|
150
156
|
/// @param amount Amount need to sweep from the pool
|
|
151
|
-
/// @custom:event Emits
|
|
152
|
-
/// @custom:error ZeroAddressNotAllowed is thrown when tokenAddress
|
|
157
|
+
/// @custom:event Emits SweepTokenFromPool event on success
|
|
158
|
+
/// @custom:error ZeroAddressNotAllowed is thrown when tokenAddress, comptroller, or receiver address is zero
|
|
153
159
|
/// @custom:error ZeroValueNotAllowed is thrown when amount is zero
|
|
154
|
-
/// @custom:access
|
|
160
|
+
/// @custom:access Controlled by AccessControlManager
|
|
155
161
|
function sweepTokenFromPool(
|
|
156
162
|
address tokenAddress,
|
|
157
163
|
address comptroller,
|
|
164
|
+
address receiver,
|
|
158
165
|
uint256 amount
|
|
159
|
-
) external
|
|
166
|
+
) external nonReentrant {
|
|
167
|
+
_checkAccessAllowed("sweepTokenFromPool(address,address,address,uint256)");
|
|
160
168
|
ensureNonzeroAddress(tokenAddress);
|
|
161
169
|
ensureNonzeroAddress(comptroller);
|
|
170
|
+
ensureNonzeroAddress(receiver);
|
|
162
171
|
ensureNonzeroValue(amount);
|
|
163
172
|
|
|
164
173
|
uint256 poolReserve = poolAssetsFunds[comptroller][tokenAddress];
|
|
@@ -171,9 +180,9 @@ contract RiskFundV2 is AccessControlledV8, RiskFundV2Storage, IRiskFund {
|
|
|
171
180
|
poolAssetsFunds[comptroller][tokenAddress] = poolReserve - amount;
|
|
172
181
|
}
|
|
173
182
|
|
|
174
|
-
IERC20Upgradeable(tokenAddress).safeTransfer(
|
|
183
|
+
IERC20Upgradeable(tokenAddress).safeTransfer(receiver, amount);
|
|
175
184
|
|
|
176
|
-
emit SweepTokenFromPool(tokenAddress, comptroller, amount);
|
|
185
|
+
emit SweepTokenFromPool(tokenAddress, comptroller, receiver, amount);
|
|
177
186
|
}
|
|
178
187
|
|
|
179
188
|
/**
|