UNPKG

@ensuro/vaults

Version:

ERC4626s for asset management, used by the Ensuro Protocol

353 lines (352 loc) 31.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "CompoundV3InvestStrategy", "sourceName": "contracts/strategies/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": "0x3060808181526040610140818152601e610180527f636f2e656e7375726f2e496e766573745374726174656779436c69656e7400006101a052610160939093526101208290526101c09052902060a05234801561005a575f5ffd5b506040516118553803806118558339810160408190526100799161013f565b6001600160a01b0381166100a05760405163a74363cd60e01b815260040160405180910390fd5b6001600160a01b0380831660c081905290821660e0526040805163c55dae6360e01b8152905163c55dae63916004808201926020929091908290030181865afa1580156100ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101139190610177565b6001600160a01b031661010052506101999050565b6001600160a01b038116811461013c575f5ffd5b50565b5f5f60408385031215610150575f5ffd5b825161015b81610128565b602084015190925061016c81610128565b809150509250929050565b5f60208284031215610187575f5ffd5b815161019281610128565b9392505050565b60805160a05160c05160e051610100516115de6102775f395f81816101740152818161033c01528181610b6e01528181610ea80152610f2a01525f81816105be015281816108e301526109b201525f818161036b015281816103c9015281816104e80152818161058e0152818161073d015281816107e601528181610871015281816108b90152818161097d01528181610e790152610f5901525f818161014101528181610a0f01528181610ca40152610e3301525f8181610206015281816102e60152818161048f0152818161067501526106f201526115de5ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80635b9a4c351161006e5780635b9a4c351461013c5780639c4667a2146101635780639cd47128146101ae578063b6b55f25146101c1578063ce96cb77146101d4578063f3e0ffbf146101e7575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e857806342b054f0146101095780635a11745614610129575b5f5ffd5b6100bd6100b836600461106f565b6101fa565b6040516100ca91906110ef565b60405180910390f35b6100e66100e1366004611101565b6102dc565b005b6100fb6100f636600461112c565b6103c6565b6040519081526020016100ca565b61011c61011736600461112c565b61045b565b6040516100ca91906111a9565b6100e66101373660046111c8565b610485565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b61019661017136600461112c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e66101bc3660046111e3565b61066b565b6100e66101cf366004611101565b6106e8565b6100fb6101e236600461112c565b61073a565b6100fb6101f536600461112c565b610850565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361024557604051632abf118b60e21b815260040160405180910390fd5b5f8360ff16600181111561025b5761025b611147565b90505f81600181111561027057610270611147565b0361029b575f8380602001905181019061028a9190611215565b9050610295816108a2565b506102c6565b60018160018111156102af576102af611147565b036100a6576102c66102c030610c7a565b84610d3c565b505060408051602081019091525f815292915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032557604051632abf118b60e21b815260040160405180910390fd5b60405163f3fef3a360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a3906044015b5f604051808303815f87803b1580156103ad575f5ffd5b505af11580156103bf573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630bc47ad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610423573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610447919061122c565b1561045357505f919050565b505f19919050565b60408051606080820183525f80835260208301529181019190915261047f82610c7a565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ce57604051632abf118b60e21b815260040160405180910390fd5b80610668576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190611215565b15610577576040516342a176d160e11b815260040160405180910390fd5b6040516320f0656b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906341e0cad69060440160408051808303815f875af1158015610605573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611247565b80519091506001600160a01b0316158015906106485750602081015115155b15610666576040516342a176d160e11b815260040160405180910390fd5b505b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b457604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261066890805f81526020015f815260200160405180602001604052805f81525081525082610d3c565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361073157604051632abf118b60e21b815260040160405180910390fd5b61066881610e62565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367800b5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb919061122c565b156107c757505f919050565b6040516370a0823160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561082c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047f9190611215565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610811565b60405163045136d760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f000000000000000000000000000000000000000000000000000000000000000090911690632289b6b8906024016060604051808303815f875af115801561092b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f919061129f565b50909150506001600160a01b038116610966575050565b604051635b81a7bf60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152600160448301527f0000000000000000000000000000000000000000000000000000000000000000169063b7034f7e906064015f604051808303815f87803b1580156109f3575f5ffd5b505af1158015610a05573d5f5f3e3d5ffd5b505050505f610a317f000000000000000000000000000000000000000000000000000000000000000090565b8054610a3c906112f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610a68906112f5565b8015610ab35780601f10610a8a57610100808354040283529160200191610ab3565b820191905f5260205f20905b815481529060010190602001808311610a9657829003601f168201915b5050505050806020019051810190610acb919061137a565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190611215565b604051637756691560e01b81529091505f9073__$acbb9ece542dcf2065f41aa3c8cca5827e$__90637756691590610b9a90869088907f00000000000000000000000000000000000000000000000000000000000000009088908c90600401611406565b602060405180830381865af4158015610bb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd99190611215565b60405163230a5c4b60e11b8152600481018290529091503090634614b896906024015f604051808303815f87803b158015610c12575f5ffd5b505af1158015610c24573d5f5f3e3d5ffd5b5050604080516001600160a01b0388168152602081018690529081018490527fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e3259250606001905060405180910390a15050505050565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610cf8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d1f9190810190611445565b905080806020019051810190610d35919061137a565b9392505050565b5f81806020019051810190610d51919061137a565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610d8b9084906004016111a9565b5f6040518083038186803b158015610da1575f5ffd5b505af4158015610db3573d5f5f3e3d5ffd5b50505050815181604051602001610dca91906111a9565b6040516020818303038152906040525114610df8576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610e29929190611477565b60405180910390a17f0000000000000000000000000000000000000000000000000000000000000000610e5c83826114ed565b50505050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610eee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f12919061122c565b50604051631e573fb760e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2b9fdb890604401610396565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610fbf57610fbf610f88565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fee57610fee610f88565b604052919050565b5f67ffffffffffffffff82111561100f5761100f610f88565b50601f01601f191660200190565b5f82601f83011261102c575f5ffd5b813561103f61103a82610ff6565b610fc5565b818152846020838601011115611053575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215611080575f5ffd5b823560ff81168114611090575f5ffd5b9150602083013567ffffffffffffffff8111156110ab575f5ffd5b6110b78582860161101d565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610d3560208301846110c1565b5f60208284031215611111575f5ffd5b5035919050565b6001600160a01b0381168114610668575f5ffd5b5f6020828403121561113c575f5ffd5b8135610d3581611118565b634e487b7160e01b5f52602160045260245ffd5b5f81516003811061117a57634e487b7160e01b5f52602160045260245ffd5b80845250602082015160208401526040820151606060408501526111a160608501826110c1565b949350505050565b602081525f610d35602083018461115b565b8015158114610668575f5ffd5b5f602082840312156111d8575f5ffd5b8135610d35816111bb565b5f602082840312156111f3575f5ffd5b813567ffffffffffffffff811115611209575f5ffd5b6111a18482850161101d565b5f60208284031215611225575f5ffd5b5051919050565b5f6020828403121561123c575f5ffd5b8151610d35816111bb565b5f6040828403128015611258575f5ffd5b506040805190810167ffffffffffffffff8111828210171561127c5761127c610f88565b604052825161128a81611118565b81526020928301519281019290925250919050565b5f5f5f606084860312156112b1575f5ffd5b83516112bc81611118565b602085015190935067ffffffffffffffff811681146112d9575f5ffd5b60408501519092506112ea816111bb565b809150509250925092565b600181811c9082168061130957607f821691505b60208210810361132757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f83011261133c575f5ffd5b815161134a61103a82610ff6565b81815284602083860101111561135e575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561138a575f5ffd5b815167ffffffffffffffff8111156113a0575f5ffd5b8201606081850312156113b1575f5ffd5b6113b9610f9c565b8151600381106113c7575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156113ec575f5ffd5b6113f88682850161132d565b604083015250949350505050565b60a081525f61141860a083018861115b565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611455575f5ffd5b815167ffffffffffffffff81111561146b575f5ffd5b6111a18482850161132d565b604081525f611489604083018561115b565b828103602084015261149b818561115b565b95945050505050565b601f8211156114e857805f5260205f20601f840160051c810160208510156114c95750805b601f840160051c820191505b818110156103bf575f81556001016114d5565b505050565b815167ffffffffffffffff81111561150757611507610f88565b61151b8161151584546112f5565b846114a4565b6020601f82116001811461154d575f83156115365750848201515b5f19600385901b1c1916600184901b1784556103bf565b5f84815260208120601f198516915b8281101561157c578785015182556020948501946001909201910161155c565b508482101561159957868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212200a6b73387ad4d40371649b2fab8fb2184925b05e3bd3f3c3de9fb2633b5dbfc264736f6c634300081e0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80635b9a4c351161006e5780635b9a4c351461013c5780639c4667a2146101635780639cd47128146101ae578063b6b55f25146101c1578063ce96cb77146101d4578063f3e0ffbf146101e7575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e857806342b054f0146101095780635a11745614610129575b5f5ffd5b6100bd6100b836600461106f565b6101fa565b6040516100ca91906110ef565b60405180910390f35b6100e66100e1366004611101565b6102dc565b005b6100fb6100f636600461112c565b6103c6565b6040519081526020016100ca565b61011c61011736600461112c565b61045b565b6040516100ca91906111a9565b6100e66101373660046111c8565b610485565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b61019661017136600461112c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e66101bc3660046111e3565b61066b565b6100e66101cf366004611101565b6106e8565b6100fb6101e236600461112c565b61073a565b6100fb6101f536600461112c565b610850565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361024557604051632abf118b60e21b815260040160405180910390fd5b5f8360ff16600181111561025b5761025b611147565b90505f81600181111561027057610270611147565b0361029b575f8380602001905181019061028a9190611215565b9050610295816108a2565b506102c6565b60018160018111156102af576102af611147565b036100a6576102c66102c030610c7a565b84610d3c565b505060408051602081019091525f815292915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361032557604051632abf118b60e21b815260040160405180910390fd5b60405163f3fef3a360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a3906044015b5f604051808303815f87803b1580156103ad575f5ffd5b505af11580156103bf573d5f5f3e3d5ffd5b5050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630bc47ad16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610423573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610447919061122c565b1561045357505f919050565b505f19919050565b60408051606080820183525f80835260208301529181019190915261047f82610c7a565b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ce57604051632abf118b60e21b815260040160405180910390fd5b80610668576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610535573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105599190611215565b15610577576040516342a176d160e11b815260040160405180910390fd5b6040516320f0656b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906341e0cad69060440160408051808303815f875af1158015610605573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106299190611247565b80519091506001600160a01b0316158015906106485750602081015115155b15610666576040516342a176d160e11b815260040160405180910390fd5b505b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106b457604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261066890805f81526020015f815260200160405180602001604052805f81525081525082610d3c565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361073157604051632abf118b60e21b815260040160405180910390fd5b61066881610e62565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166367800b5f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb919061122c565b156107c757505f919050565b6040516370a0823160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561082c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047f9190611215565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610811565b60405163045136d760e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f000000000000000000000000000000000000000000000000000000000000000090911690632289b6b8906024016060604051808303815f875af115801561092b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f919061129f565b50909150506001600160a01b038116610966575050565b604051635b81a7bf60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152600160448301527f0000000000000000000000000000000000000000000000000000000000000000169063b7034f7e906064015f604051808303815f87803b1580156109f3575f5ffd5b505af1158015610a05573d5f5f3e3d5ffd5b505050505f610a317f000000000000000000000000000000000000000000000000000000000000000090565b8054610a3c906112f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610a68906112f5565b8015610ab35780601f10610a8a57610100808354040283529160200191610ab3565b820191905f5260205f20905b815481529060010190602001808311610a9657829003601f168201915b5050505050806020019051810190610acb919061137a565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190611215565b604051637756691560e01b81529091505f9073__$acbb9ece542dcf2065f41aa3c8cca5827e$__90637756691590610b9a90869088907f00000000000000000000000000000000000000000000000000000000000000009088908c90600401611406565b602060405180830381865af4158015610bb5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd99190611215565b60405163230a5c4b60e11b8152600481018290529091503090634614b896906024015f604051808303815f87803b158015610c12575f5ffd5b505af1158015610c24573d5f5f3e3d5ffd5b5050604080516001600160a01b0388168152602081018690529081018490527fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e3259250606001905060405180910390a15050505050565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610cf8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d1f9190810190611445565b905080806020019051810190610d35919061137a565b9392505050565b5f81806020019051810190610d51919061137a565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c90610d8b9084906004016111a9565b5f6040518083038186803b158015610da1575f5ffd5b505af4158015610db3573d5f5f3e3d5ffd5b50505050815181604051602001610dca91906111a9565b6040516020818303038152906040525114610df8576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f88382604051610e29929190611477565b60405180910390a17f0000000000000000000000000000000000000000000000000000000000000000610e5c83826114ed565b50505050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610eee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f12919061122c565b50604051631e573fb760e31b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2b9fdb890604401610396565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715610fbf57610fbf610f88565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610fee57610fee610f88565b604052919050565b5f67ffffffffffffffff82111561100f5761100f610f88565b50601f01601f191660200190565b5f82601f83011261102c575f5ffd5b813561103f61103a82610ff6565b610fc5565b818152846020838601011115611053575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215611080575f5ffd5b823560ff81168114611090575f5ffd5b9150602083013567ffffffffffffffff8111156110ab575f5ffd5b6110b78582860161101d565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610d3560208301846110c1565b5f60208284031215611111575f5ffd5b5035919050565b6001600160a01b0381168114610668575f5ffd5b5f6020828403121561113c575f5ffd5b8135610d3581611118565b634e487b7160e01b5f52602160045260245ffd5b5f81516003811061117a57634e487b7160e01b5f52602160045260245ffd5b80845250602082015160208401526040820151606060408501526111a160608501826110c1565b949350505050565b602081525f610d35602083018461115b565b8015158114610668575f5ffd5b5f602082840312156111d8575f5ffd5b8135610d35816111bb565b5f602082840312156111f3575f5ffd5b813567ffffffffffffffff811115611209575f5ffd5b6111a18482850161101d565b5f60208284031215611225575f5ffd5b5051919050565b5f6020828403121561123c575f5ffd5b8151610d35816111bb565b5f6040828403128015611258575f5ffd5b506040805190810167ffffffffffffffff8111828210171561127c5761127c610f88565b604052825161128a81611118565b81526020928301519281019290925250919050565b5f5f5f606084860312156112b1575f5ffd5b83516112bc81611118565b602085015190935067ffffffffffffffff811681146112d9575f5ffd5b60408501519092506112ea816111bb565b809150509250925092565b600181811c9082168061130957607f821691505b60208210810361132757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f83011261133c575f5ffd5b815161134a61103a82610ff6565b81815284602083860101111561135e575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561138a575f5ffd5b815167ffffffffffffffff8111156113a0575f5ffd5b8201606081850312156113b1575f5ffd5b6113b9610f9c565b8151600381106113c7575f5ffd5b815260208281015190820152604082015167ffffffffffffffff8111156113ec575f5ffd5b6113f88682850161132d565b604083015250949350505050565b60a081525f61141860a083018861115b565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611455575f5ffd5b815167ffffffffffffffff81111561146b575f5ffd5b6111a18482850161132d565b604081525f611489604083018561115b565b828103602084015261149b818561115b565b95945050505050565b601f8211156114e857805f5260205f20601f840160051c810160208510156114c95750805b601f840160051c820191505b818110156103bf575f81556001016114d5565b505050565b815167ffffffffffffffff81111561150757611507610f88565b61151b8161151584546112f5565b846114a4565b6020601f82116001811461154d575f83156115365750848201515b5f19600385901b1c1916600184901b1784556103bf565b5f84815260208120601f198516915b8281101561157c578785015182556020948501946001909201910161155c565b508482101561159957868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212200a6b73387ad4d40371649b2fab8fb2184925b05e3bd3f3c3de9fb2633b5dbfc264736f6c634300081e0033", "linkReferences": { "@ensuro/swaplibrary/contracts/SwapLibrary.sol": { "SwapLibrary": [ { "length": 20, "start": 3521 }, { "length": 20, "start": 4058 } ] } }, "deployedLinkReferences": { "@ensuro/swaplibrary/contracts/SwapLibrary.sol": { "SwapLibrary": [ { "length": 20, "start": 2890 }, { "length": 20, "start": 3427 } ] } } }