@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
353 lines (352 loc) • 31 kB
JSON
{
"_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
}
]
}
}
}