UNPKG

@ensuro/vaults

Version:

ERC4626s for asset management, used by the Ensuro Protocol

353 lines (352 loc) 31 kB
{ "_format": "hh-sol-artifact-1", "contractName": "CompoundV3InvestStrategy", "sourceName": "contracts/CompoundV3InvestStrategy.sol", "abi": [ { "inputs": [ { "internalType": "contract ICompoundV3", "name": "cToken_", "type": "address" }, { "internalType": "contract ICometRewards", "name": "rewardsManager_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CanBeCalledOnlyThroughDelegateCall", "type": "error" }, { "inputs": [], "name": "CannotDisconnectWithAssets", "type": "error" }, { "inputs": [], "name": "NoExtraDataAllowed", "type": "error" }, { "inputs": [], "name": "RewardsManagerRequired", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewards", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "receivedInAsset", "type": "uint256" } ], "name": "RewardsClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "enum SwapLibrary.SwapProtocol", "name": "protocol", "type": "uint8" }, { "internalType": "uint256", "name": "maxSlippage", "type": "uint256" }, { "internalType": "bytes", "name": "customParams", "type": "bytes" } ], "indexed": false, "internalType": "struct SwapLibrary.SwapConfig", "name": "oldConfig", "type": "tuple" }, { "components": [ { "internalType": "enum SwapLibrary.SwapProtocol", "name": "protocol", "type": "uint8" }, { "internalType": "uint256", "name": "maxSlippage", "type": "uint256" }, { "internalType": "bytes", "name": "customParams", "type": "bytes" } ], "indexed": false, "internalType": "struct SwapLibrary.SwapConfig", "name": "newConfig", "type": "tuple" } ], "name": "SwapConfigChanged", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "initData", "type": "bytes" } ], "name": "connect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "force", "type": "bool" } ], "name": "disconnect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "method", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "forwardEntryPoint", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contract_", "type": "address" } ], "name": "getSwapConfig", "outputs": [ { "components": [ { "internalType": "enum SwapLibrary.SwapProtocol", "name": "protocol", "type": "uint8" }, { "internalType": "uint256", "name": "maxSlippage", "type": "uint256" }, { "internalType": "bytes", "name": "customParams", "type": "bytes" } ], "internalType": "struct SwapLibrary.SwapConfig", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contract_", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "storageSlot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contract_", "type": "address" } ], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x3060808181526040610140818152601e610180527f636f2e656e7375726f2e496e766573745374726174656779436c69656e7400006101a052610160939093526101208290526101c09052902060a05234801561005a575f5ffd5b506040516118103803806118108339810160408190526100799161013f565b6001600160a01b0381166100a05760405163a74363cd60e01b815260040160405180910390fd5b6001600160a01b0380831660c081905290821660e0526040805163c55dae6360e01b8152905163c55dae63916004808201926020929091908290030181865afa1580156100ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101139190610177565b6001600160a01b031661010052506101999050565b6001600160a01b038116811461013c575f5ffd5b50565b5f5f60408385031215610150575f5ffd5b825161015b81610128565b602084015190925061016c81610128565b809150509250929050565b5f60208284031215610187575f5ffd5b815161019281610128565b9392505050565b60805160a05160c05160e051610100516115996102775f395f81816101740152818161033c01528181610b6e01528181610e630152610ee501525f81816105be015281816108e301526109b201525f818161036b015281816103c9015281816104e80152818161058e0152818161073d015281816107e601528181610871015281816108b90152818161097d01528181610e340152610f1401525f818161014101528181610a0f01528181610c5f0152610dee01525f8181610206015281816102e60152818161048f0152818161067501526106f201526115995ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80635b9a4c351161006e5780635b9a4c351461013c5780639c4667a2146101635780639cd47128146101ae578063b6b55f25146101c1578063ce96cb77146101d4578063f3e0ffbf146101e7575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e857806342b054f0146101095780635a11745614610129575b5f5ffd5b6100bd6100b836600461102a565b6101fa565b6040516100ca91906110aa565b60405180910390f35b6100e66100e13660046110bc565b6102dc565b005b6100fb6100f63660046110e7565b6103c6565b6040519081526020016100ca565b61011c6101173660046110e7565b61045b565b6040516100ca9190611164565b6100e6610137366004611183565b610485565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101966101713660046110e7565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e66101bc36600461119e565b61066b565b6100e66101cf3660046110bc565b6106e8565b6100fb6101e23660046110e7565b61073a565b6100fb6101f53660046110e7565b610850565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361024557604051632abf118b60e21b815260040160405180910390fd5b5f8360ff16600181111561025b5761025b611102565b90505f81600181111561027057610270611102565b0361029b575f8380602001905181019061028a91906111d0565b9050610295816108a2565b506102c6565b60018160018111156102af576102af611102565b036100a6576102c66102c030610c35565b84610cf7565b505060408051602081019091525f815292915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032557604051632abf118b60e21b815260040160405180910390fd5b60405163f3fef3a360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a3906044015b5f604051808303815f87803b1580156103ad575f5ffd5b505af11580156103bf573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630bc47ad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610423573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044791906111e7565b1561045357505f919050565b505f19919050565b60408051606080820183525f80835260208301529181019190915261047f82610c35565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ce57604051632abf118b60e21b815260040160405180910390fd5b80610668576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055991906111d0565b15610577576040516342a176d160e11b815260040160405180910390fd5b6040516320f0656b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906341e0cad69060440160408051808303815f875af1158015610605573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611202565b80519091506001600160a01b0316158015906106485750602081015115155b15610666576040516342a176d160e11b815260040160405180910390fd5b505b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b457604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261066890805f81526020015f815260200160405180602001604052805f81525081525082610cf7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361073157604051632abf118b60e21b815260040160405180910390fd5b61066881610e1d565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367800b5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906111e7565b156107c757505f919050565b6040516370a0823160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561082c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047f91906111d0565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610811565b60405163045136d760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f000000000000000000000000000000000000000000000000000000000000000090911690632289b6b8906024016060604051808303815f875af115801561092b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f919061125a565b50909150506001600160a01b038116610966575050565b604051635b81a7bf60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152600160448301527f0000000000000000000000000000000000000000000000000000000000000000169063b7034f7e906064015f604051808303815f87803b1580156109f3575f5ffd5b505af1158015610a05573d5f5f3e3d5ffd5b505050505f610a317f000000000000000000000000000000000000000000000000000000000000000090565b8054610a3c906112b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a68906112b0565b8015610ab35780601f10610a8a57610100808354040283529160200191610ab3565b820191905f5260205f20905b815481529060010190602001808311610a9657829003601f168201915b5050505050806020019051810190610acb9190611335565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3691906111d0565b604051637756691560e01b81529091505f9073__$acbb9ece542dcf2065f41aa3c8cca5827e$__90637756691590610b9a90869088907f00000000000000000000000000000000000000000000000000000000000000009088908c906004016113c1565b602060405180830381865af4158015610bb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd991906111d0565b9050610be481610e1d565b604080516001600160a01b0386168152602081018490529081018290527fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e3259060600160405180910390a15050505050565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610cb3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cda9190810190611400565b905080806020019051810190610cf09190611335565b9392505050565b5f81806020019051810190610d0c9190611335565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610d46908490600401611164565b5f6040518083038186803b158015610d5c575f5ffd5b505af4158015610d6e573d5f5f3e3d5ffd5b50505050815181604051602001610d859190611164565b6040516020818303038152906040525114610db3576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610de4929190611432565b60405180910390a17f0000000000000000000000000000000000000000000000000000000000000000610e1783826114a8565b50505050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610ea9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecd91906111e7565b50604051631e573fb760e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2b9fdb890604401610396565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610f7a57610f7a610f43565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fa957610fa9610f43565b604052919050565b5f67ffffffffffffffff821115610fca57610fca610f43565b50601f01601f191660200190565b5f82601f830112610fe7575f5ffd5b8135610ffa610ff582610fb1565b610f80565b81815284602083860101111561100e575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f6040838503121561103b575f5ffd5b823560ff8116811461104b575f5ffd5b9150602083013567ffffffffffffffff811115611066575f5ffd5b61107285828601610fd8565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610cf0602083018461107c565b5f602082840312156110cc575f5ffd5b5035919050565b6001600160a01b0381168114610668575f5ffd5b5f602082840312156110f7575f5ffd5b8135610cf0816110d3565b634e487b7160e01b5f52602160045260245ffd5b5f81516003811061113557634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261115c606085018261107c565b949350505050565b602081525f610cf06020830184611116565b8015158114610668575f5ffd5b5f60208284031215611193575f5ffd5b8135610cf081611176565b5f602082840312156111ae575f5ffd5b813567ffffffffffffffff8111156111c4575f5ffd5b61115c84828501610fd8565b5f602082840312156111e0575f5ffd5b5051919050565b5f602082840312156111f7575f5ffd5b8151610cf081611176565b5f6040828403128015611213575f5ffd5b506040805190810167ffffffffffffffff8111828210171561123757611237610f43565b6040528251611245816110d3565b81526020928301519281019290925250919050565b5f5f5f6060848603121561126c575f5ffd5b8351611277816110d3565b602085015190935067ffffffffffffffff81168114611294575f5ffd5b60408501519092506112a581611176565b809150509250925092565b600181811c908216806112c457607f821691505b6020821081036112e257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f8301126112f7575f5ffd5b8151611305610ff582610fb1565b818152846020838601011115611319575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215611345575f5ffd5b815167ffffffffffffffff81111561135b575f5ffd5b82016060818503121561136c575f5ffd5b611374610f57565b815160038110611382575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156113a7575f5ffd5b6113b3868285016112e8565b604083015250949350505050565b60a081525f6113d360a0830188611116565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611410575f5ffd5b815167ffffffffffffffff811115611426575f5ffd5b61115c848285016112e8565b604081525f6114446040830185611116565b82810360208401526114568185611116565b95945050505050565b601f8211156114a357805f5260205f20601f840160051c810160208510156114845750805b601f840160051c820191505b818110156103bf575f8155600101611490565b505050565b815167ffffffffffffffff8111156114c2576114c2610f43565b6114d6816114d084546112b0565b8461145f565b6020601f821160018114611508575f83156114f15750848201515b5f19600385901b1c1916600184901b1784556103bf565b5f84815260208120601f198516915b828110156115375787850151825560209485019460019092019101611517565b508482101561155457868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220a751b47974c1227ab948d5c0e6446e9e1bda4a34cceff191e2cfe150b0d88a1d64736f6c634300081c0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80635b9a4c351161006e5780635b9a4c351461013c5780639c4667a2146101635780639cd47128146101ae578063b6b55f25146101c1578063ce96cb77146101d4578063f3e0ffbf146101e7575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e857806342b054f0146101095780635a11745614610129575b5f5ffd5b6100bd6100b836600461102a565b6101fa565b6040516100ca91906110aa565b60405180910390f35b6100e66100e13660046110bc565b6102dc565b005b6100fb6100f63660046110e7565b6103c6565b6040519081526020016100ca565b61011c6101173660046110e7565b61045b565b6040516100ca9190611164565b6100e6610137366004611183565b610485565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101966101713660046110e7565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e66101bc36600461119e565b61066b565b6100e66101cf3660046110bc565b6106e8565b6100fb6101e23660046110e7565b61073a565b6100fb6101f53660046110e7565b610850565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361024557604051632abf118b60e21b815260040160405180910390fd5b5f8360ff16600181111561025b5761025b611102565b90505f81600181111561027057610270611102565b0361029b575f8380602001905181019061028a91906111d0565b9050610295816108a2565b506102c6565b60018160018111156102af576102af611102565b036100a6576102c66102c030610c35565b84610cf7565b505060408051602081019091525f815292915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032557604051632abf118b60e21b815260040160405180910390fd5b60405163f3fef3a360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a3906044015b5f604051808303815f87803b1580156103ad575f5ffd5b505af11580156103bf573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630bc47ad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610423573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044791906111e7565b1561045357505f919050565b505f19919050565b60408051606080820183525f80835260208301529181019190915261047f82610c35565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ce57604051632abf118b60e21b815260040160405180910390fd5b80610668576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055991906111d0565b15610577576040516342a176d160e11b815260040160405180910390fd5b6040516320f0656b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906341e0cad69060440160408051808303815f875af1158015610605573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611202565b80519091506001600160a01b0316158015906106485750602081015115155b15610666576040516342a176d160e11b815260040160405180910390fd5b505b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b457604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261066890805f81526020015f815260200160405180602001604052805f81525081525082610cf7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361073157604051632abf118b60e21b815260040160405180910390fd5b61066881610e1d565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367800b5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906111e7565b156107c757505f919050565b6040516370a0823160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561082c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047f91906111d0565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610811565b60405163045136d760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f000000000000000000000000000000000000000000000000000000000000000090911690632289b6b8906024016060604051808303815f875af115801561092b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f919061125a565b50909150506001600160a01b038116610966575050565b604051635b81a7bf60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152600160448301527f0000000000000000000000000000000000000000000000000000000000000000169063b7034f7e906064015f604051808303815f87803b1580156109f3575f5ffd5b505af1158015610a05573d5f5f3e3d5ffd5b505050505f610a317f000000000000000000000000000000000000000000000000000000000000000090565b8054610a3c906112b0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a68906112b0565b8015610ab35780601f10610a8a57610100808354040283529160200191610ab3565b820191905f5260205f20905b815481529060010190602001808311610a9657829003601f168201915b5050505050806020019051810190610acb9190611335565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3691906111d0565b604051637756691560e01b81529091505f9073__$acbb9ece542dcf2065f41aa3c8cca5827e$__90637756691590610b9a90869088907f00000000000000000000000000000000000000000000000000000000000000009088908c906004016113c1565b602060405180830381865af4158015610bb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd991906111d0565b9050610be481610e1d565b604080516001600160a01b0386168152602081018490529081018290527fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e3259060600160405180910390a15050505050565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610cb3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610cda9190810190611400565b905080806020019051810190610cf09190611335565b9392505050565b5f81806020019051810190610d0c9190611335565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610d46908490600401611164565b5f6040518083038186803b158015610d5c575f5ffd5b505af4158015610d6e573d5f5f3e3d5ffd5b50505050815181604051602001610d859190611164565b6040516020818303038152906040525114610db3576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610de4929190611432565b60405180910390a17f0000000000000000000000000000000000000000000000000000000000000000610e1783826114a8565b50505050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610ea9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecd91906111e7565b50604051631e573fb760e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2b9fdb890604401610396565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610f7a57610f7a610f43565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fa957610fa9610f43565b604052919050565b5f67ffffffffffffffff821115610fca57610fca610f43565b50601f01601f191660200190565b5f82601f830112610fe7575f5ffd5b8135610ffa610ff582610fb1565b610f80565b81815284602083860101111561100e575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f6040838503121561103b575f5ffd5b823560ff8116811461104b575f5ffd5b9150602083013567ffffffffffffffff811115611066575f5ffd5b61107285828601610fd8565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610cf0602083018461107c565b5f602082840312156110cc575f5ffd5b5035919050565b6001600160a01b0381168114610668575f5ffd5b5f602082840312156110f7575f5ffd5b8135610cf0816110d3565b634e487b7160e01b5f52602160045260245ffd5b5f81516003811061113557634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261115c606085018261107c565b949350505050565b602081525f610cf06020830184611116565b8015158114610668575f5ffd5b5f60208284031215611193575f5ffd5b8135610cf081611176565b5f602082840312156111ae575f5ffd5b813567ffffffffffffffff8111156111c4575f5ffd5b61115c84828501610fd8565b5f602082840312156111e0575f5ffd5b5051919050565b5f602082840312156111f7575f5ffd5b8151610cf081611176565b5f6040828403128015611213575f5ffd5b506040805190810167ffffffffffffffff8111828210171561123757611237610f43565b6040528251611245816110d3565b81526020928301519281019290925250919050565b5f5f5f6060848603121561126c575f5ffd5b8351611277816110d3565b602085015190935067ffffffffffffffff81168114611294575f5ffd5b60408501519092506112a581611176565b809150509250925092565b600181811c908216806112c457607f821691505b6020821081036112e257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f8301126112f7575f5ffd5b8151611305610ff582610fb1565b818152846020838601011115611319575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215611345575f5ffd5b815167ffffffffffffffff81111561135b575f5ffd5b82016060818503121561136c575f5ffd5b611374610f57565b815160038110611382575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156113a7575f5ffd5b6113b3868285016112e8565b604083015250949350505050565b60a081525f6113d360a0830188611116565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611410575f5ffd5b815167ffffffffffffffff811115611426575f5ffd5b61115c848285016112e8565b604081525f6114446040830185611116565b82810360208401526114568185611116565b95945050505050565b601f8211156114a357805f5260205f20601f840160051c810160208510156114845750805b601f840160051c820191505b818110156103bf575f8155600101611490565b505050565b815167ffffffffffffffff8111156114c2576114c2610f43565b6114d6816114d084546112b0565b8461145f565b6020601f821160018114611508575f83156114f15750848201515b5f19600385901b1c1916600184901b1784556103bf565b5f84815260208120601f198516915b828110156115375787850151825560209485019460019092019101611517565b508482101561155457868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220a751b47974c1227ab948d5c0e6446e9e1bda4a34cceff191e2cfe150b0d88a1d64736f6c634300081c0033", "linkReferences": { "@ensuro/swaplibrary/contracts/SwapLibrary.sol": { "SwapLibrary": [ { "length": 20, "start": 3521 }, { "length": 20, "start": 3989 } ] } }, "deployedLinkReferences": { "@ensuro/swaplibrary/contracts/SwapLibrary.sol": { "SwapLibrary": [ { "length": 20, "start": 2890 }, { "length": 20, "start": 3358 } ] } } }