@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
386 lines (385 loc) • 40.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "SwapStableAaveV3InvestStrategy",
"sourceName": "contracts/SwapStableAaveV3InvestStrategy.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IERC20Metadata",
"name": "asset_",
"type": "address"
},
{
"internalType": "contract IERC20Metadata",
"name": "investAsset_",
"type": "address"
},
{
"internalType": "uint256",
"name": "price_",
"type": "uint256"
},
{
"internalType": "contract IPool",
"name": "aave_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CanBeCalledOnlyThroughDelegateCall",
"type": "error"
},
{
"inputs": [],
"name": "CannotDisconnectWithAssets",
"type": "error"
},
{
"inputs": [],
"name": "InvalidAsset",
"type": "error"
},
{
"inputs": [],
"name": "NoExtraDataAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"name": "ResupplyFailed",
"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": "investAsset",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"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": "0x3060808181526040610160818152601e6101a0527f636f2e656e7375726f2e496e766573745374726174656779436c69656e7400006101c052610180939093526101408290526101e09052902060a05234801561005a575f5ffd5b50604051612197380380612197833981016040819052610079916101f3565b8383836012836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610245565b60ff16111561010057604051636448d6e960e11b815260040160405180910390fd5b6012826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101629190610245565b60ff16111561018457604051636448d6e960e11b815260040160405180910390fd5b816001600160a01b0316836001600160a01b0316036101b657604051636448d6e960e11b815260040160405180910390fd5b6001600160a01b0392831660c05290821660e0526101005216610120525061026c915050565b6001600160a01b03811681146101f0575f5ffd5b50565b5f5f5f5f60808587031215610206575f5ffd5b8451610211816101dc565b6020860151909450610222816101dc565b60408601516060870151919450925061023a816101dc565b939692955090935050565b5f60208284031215610255575f5ffd5b815160ff81168114610265575f5ffd5b9392505050565b60805160a05160c05160e0516101005161012051611e046103935f395f818161037101528181610d8d01528181610e7f01528181610f5e015261107701525f8181610b020152818161126b015261133701525f81816102030152818161033c015281816103fe015281816106c701528181610b4a01528181610bf201528181610d1801528181610dbc01528181610e4401528181610f230152818161104f01528181611247015261130701525f818161017f01528181610c1401528181610d3a0152818161122501526112d801525f818161014c0152818161082e015281816109b601528181610a37015261113801525f8181610244015281816102e0015281816104fc015281816105e901528181610666015281816109ef01526110f00152611e045ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80639c4667a21161006e5780639c4667a21461016e5780639cd47128146101b9578063b6b55f25146101cc578063ce96cb77146101df578063de846ae4146101f2578063f3e0ffbf14610225575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f357806342b054f0146101145780635a117456146101345780635b9a4c3514610147575b5f5ffd5b6100c86100c33660046115f2565b610238565b6040516100d5919061166d565b60405180910390f35b6100f16100ec36600461167f565b6102d6565b005b6101066101013660046116aa565b610479565b6040519081526020016100d5565b6101276101223660046116aa565b6104ce565b6040516100d59190611727565b6100f1610142366004611746565b6104f2565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b6101a161017c3660046116aa565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100d5565b6100f16101c7366004611761565b6105df565b6100f16101da36600461167f565b61065c565b6101066101ed3660046116aa565b61073e565b6101a16102003660046116aa565b507f000000000000000000000000000000000000000000000000000000000000000090565b6101066102333660046116aa565b610784565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361028357604051632abf118b60e21b815260040160405180910390fd5b5f60ff84168015610296576102966116c5565b90505f8180156102a8576102a86116c5565b036100b1576102bf6102b930610804565b846108bf565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361031f57604051632abf118b60e21b815260040160405180910390fd5b801561047657604051631a4ca37b60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301523060448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303815f875af11580156103b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103db9190611793565b506103e5816109e5565b6040516370a0823160e01b8152306004820152610476907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561044b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046f9190611793565b6001610d6b565b50565b5f5f610483610fb9565b805151909150600160381b1615806104a257508051516001603c1b1615155b806104b857508051516702000000000000001615155b156104c557505f92915050565b505f1992915050565b60408051606080820183525f8083526020830152918101919091526102d082610804565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361053b57604051632abf118b60e21b815260040160405180910390fd5b5f610544610fb9565b61010001519050811580156105bd57506040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015610596573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ba9190611793565b15155b156105db576040516342a176d160e11b815260040160405180910390fd5b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361062857604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261047690805f81526020015f815260200160405180602001604052805f815250815250826108bf565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106a557604051632abf118b60e21b815260040160405180910390fd5b6106ae816110e6565b6040516370a0823160e01b8152306004820152610476907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610714573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107389190611793565b5f610d6b565b5f5f610748610fb9565b805151909150600160381b16158061076757508051516001603c1b1615155b1561077457505f92915050565b61077d83610784565b9392505050565b5f6102d0610790610fb9565b61010001516040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156107da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe9190611793565b836112d2565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108a991908101906117f7565b90508080602001905181019061077d9190611829565b5f818060200190518101906108d49190611829565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c9061090e908490600401611727565b5f6040518083038186803b158015610924575f5ffd5b505af4158015610936573d5f5f3e3d5ffd5b5050505081518160405160200161094d9190611727565b604051602081830303815290604052511461097b576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f883826040516109ac9291906118b5565b60405180910390a17f00000000000000000000000000000000000000000000000000000000000000006109df8382611965565b50505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a2e57604051632abf118b60e21b815260040160405180910390fd5b8015610476575f7f00000000000000000000000000000000000000000000000000000000000000008054610a61906118e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8d906118e2565b8015610ad85780601f10610aaf57610100808354040283529160200191610ad8565b820191905f5260205f20905b815481529060010190602001808311610abb57829003601f168201915b5050505050806020019051810190610af09190611829565b90505f610b26670de0b6b3a7640000807f000000000000000000000000000000000000000000000000000000000000000061139b565b6040516370a0823160e01b8152306004820152909150610bb9906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610b8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb39190611793565b306112d2565b8310610ce7576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c63573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c879190611793565b866040518663ffffffff1660e01b8152600401610ca8959493929190611a20565b602060405180830381865af4158015610cc3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109df9190611793565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d90610ca89085907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009089908890600401611a20565b505050565b815f03610d76575050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610e02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e269190611a5f565b508015610f0c5760405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b158015610ec0575f5ffd5b505af1925050508015610ed1575060015b6105db576040518281527f323f803ab99bd4b7b37bba0e83169793239f293cc8b9d11837997563c5902eac9060200160405180910390a15050565b60405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b158015610f9f575f5ffd5b505af1158015610fb1573d5f5f3e3d5ffd5b505050505050565b60408051610200810182525f6101e08201818152825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526040516335ea6a7560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa1580156110bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e19190611b0e565b905090565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361112f57604051632abf118b60e21b815260040160405180910390fd5b8015610476575f7f00000000000000000000000000000000000000000000000000000000000000008054611162906118e2565b80601f016020809104026020016040519081016040528092919081815260200182805461118e906118e2565b80156111d95780601f106111b0576101008083540402835291602001916111d9565b820191905f5260205f20905b8154815290600101906020018083116111bc57829003601f168201915b50505050508060200190518101906111f19190611829565b604051637756691560e01b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__906377566915906112939084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088907f000000000000000000000000000000000000000000000000000000000000000090600401611a20565b602060405180830381865af41580156112ae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d669190611793565b5f6112fc7f0000000000000000000000000000000000000000000000000000000000000000611451565b61139161136461132b7f0000000000000000000000000000000000000000000000000000000000000000611451565b6113359087611c4c565b7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a764000061139b565b61136d85610804565b6020015161138390670de0b6b3a7640000611c63565b670de0b6b3a764000061139b565b61077d9190611c8a565b5f838302815f1985870982811083820303915050805f036113cf578382816113c5576113c5611c76565b049250505061077d565b8084116113e6576113e660038515026011186114c8565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b29190611ca9565b6114bd906012611cc4565b6102d090600a611dc0565b634e487b715f52806020526024601cfd5b60ff81168114610476575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561151e5761151e6114e7565b60405290565b6040516101e0810167ffffffffffffffff8111828210171561151e5761151e6114e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611571576115716114e7565b604052919050565b5f67ffffffffffffffff821115611592576115926114e7565b50601f01601f191660200190565b5f82601f8301126115af575f5ffd5b81356115c26115bd82611579565b611548565b8181528460208386010111156115d6575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215611603575f5ffd5b823561160e816114d9565b9150602083013567ffffffffffffffff811115611629575f5ffd5b611635858286016115a0565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61077d602083018461163f565b5f6020828403121561168f575f5ffd5b5035919050565b6001600160a01b0381168114610476575f5ffd5b5f602082840312156116ba575f5ffd5b813561077d81611696565b634e487b7160e01b5f52602160045260245ffd5b5f8151600381106116f857634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261171f606085018261163f565b949350505050565b602081525f61077d60208301846116d9565b8015158114610476575f5ffd5b5f60208284031215611756575f5ffd5b813561077d81611739565b5f60208284031215611771575f5ffd5b813567ffffffffffffffff811115611787575f5ffd5b61171f848285016115a0565b5f602082840312156117a3575f5ffd5b5051919050565b5f82601f8301126117b9575f5ffd5b81516117c76115bd82611579565b8181528460208386010111156117db575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215611807575f5ffd5b815167ffffffffffffffff81111561181d575f5ffd5b61171f848285016117aa565b5f60208284031215611839575f5ffd5b815167ffffffffffffffff81111561184f575f5ffd5b820160608185031215611860575f5ffd5b6118686114fb565b815160038110611876575f5ffd5b815260208281015190820152604082015167ffffffffffffffff81111561189b575f5ffd5b6118a7868285016117aa565b604083015250949350505050565b604081525f6118c760408301856116d9565b82810360208401526118d981856116d9565b95945050505050565b600181811c908216806118f657607f821691505b60208210810361191457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d6657805f5260205f20601f840160051c8101602085101561193f5750805b601f840160051c820191505b8181101561195e575f815560010161194b565b5050505050565b815167ffffffffffffffff81111561197f5761197f6114e7565b6119938161198d84546118e2565b8461191a565b6020601f8211600181146119c5575f83156119ae5750848201515b5f19600385901b1c1916600184901b17845561195e565b5f84815260208120601f198516915b828110156119f457878501518255602094850194600190920191016119d4565b5084821015611a1157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60a081525f611a3260a08301886116d9565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611a6f575f5ffd5b815161077d81611739565b5f60208284031215611a8a575f5ffd5b6040516020810167ffffffffffffffff81118282101715611aad57611aad6114e7565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114611ad9575f5ffd5b919050565b805164ffffffffff81168114611ad9575f5ffd5b805161ffff81168114611ad9575f5ffd5b8051611ad981611696565b5f6101e0828403128015611b20575f5ffd5b50611b29611524565b611b338484611a7a565b8152611b4160208401611aba565b6020820152611b5260408401611aba565b6040820152611b6360608401611aba565b6060820152611b7460808401611aba565b6080820152611b8560a08401611aba565b60a0820152611b9660c08401611ade565b60c0820152611ba760e08401611af2565b60e0820152611bb96101008401611b03565b610100820152611bcc6101208401611b03565b610120820152611bdf6101408401611b03565b610140820152611bf26101608401611b03565b610160820152611c056101808401611aba565b610180820152611c186101a08401611aba565b6101a0820152611c2b6101c08401611aba565b6101c08201529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176102d0576102d0611c38565b818103818111156102d0576102d0611c38565b634e487b7160e01b5f52601260045260245ffd5b5f82611ca457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611cb9575f5ffd5b815161077d816114d9565b60ff82811682821603908111156102d0576102d0611c38565b6001815b6001841115611d1857808504811115611cfc57611cfc611c38565b6001841615611d0a57908102905b60019390931c928002611ce1565b935093915050565b5f82611d2e575060016102d0565b81611d3a57505f6102d0565b8160018114611d505760028114611d5a57611d76565b60019150506102d0565b60ff841115611d6b57611d6b611c38565b50506001821b6102d0565b5060208310610133831016604e8410600b8410161715611d99575081810a6102d0565b611da55f198484611cdd565b805f1904821115611db857611db8611c38565b029392505050565b5f61077d60ff841683611d2056fea2646970667358221220e19d8046f8602bcb032d96b7e862b29980f87ac47a3ba88d03f9cd416094454c64736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80639c4667a21161006e5780639c4667a21461016e5780639cd47128146101b9578063b6b55f25146101cc578063ce96cb77146101df578063de846ae4146101f2578063f3e0ffbf14610225575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f357806342b054f0146101145780635a117456146101345780635b9a4c3514610147575b5f5ffd5b6100c86100c33660046115f2565b610238565b6040516100d5919061166d565b60405180910390f35b6100f16100ec36600461167f565b6102d6565b005b6101066101013660046116aa565b610479565b6040519081526020016100d5565b6101276101223660046116aa565b6104ce565b6040516100d59190611727565b6100f1610142366004611746565b6104f2565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b6101a161017c3660046116aa565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100d5565b6100f16101c7366004611761565b6105df565b6100f16101da36600461167f565b61065c565b6101066101ed3660046116aa565b61073e565b6101a16102003660046116aa565b507f000000000000000000000000000000000000000000000000000000000000000090565b6101066102333660046116aa565b610784565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361028357604051632abf118b60e21b815260040160405180910390fd5b5f60ff84168015610296576102966116c5565b90505f8180156102a8576102a86116c5565b036100b1576102bf6102b930610804565b846108bf565b505060408051602081019091525f81525b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361031f57604051632abf118b60e21b815260040160405180910390fd5b801561047657604051631a4ca37b60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301523060448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303815f875af11580156103b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103db9190611793565b506103e5816109e5565b6040516370a0823160e01b8152306004820152610476907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561044b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061046f9190611793565b6001610d6b565b50565b5f5f610483610fb9565b805151909150600160381b1615806104a257508051516001603c1b1615155b806104b857508051516702000000000000001615155b156104c557505f92915050565b505f1992915050565b60408051606080820183525f8083526020830152918101919091526102d082610804565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361053b57604051632abf118b60e21b815260040160405180910390fd5b5f610544610fb9565b61010001519050811580156105bd57506040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015610596573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ba9190611793565b15155b156105db576040516342a176d160e11b815260040160405180910390fd5b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361062857604051632abf118b60e21b815260040160405180910390fd5b604080516060810190915261047690805f81526020015f815260200160405180602001604052805f815250815250826108bf565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106a557604051632abf118b60e21b815260040160405180910390fd5b6106ae816110e6565b6040516370a0823160e01b8152306004820152610476907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610714573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107389190611793565b5f610d6b565b5f5f610748610fb9565b805151909150600160381b16158061076757508051516001603c1b1615155b1561077457505f92915050565b61077d83610784565b9392505050565b5f6102d0610790610fb9565b61010001516040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156107da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe9190611793565b836112d2565b60408051606080820183525f8083526020830152918101919091526040516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201525f906001600160a01b038416906347e57533906024015f60405180830381865afa158015610882573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108a991908101906117f7565b90508080602001905181019061077d9190611829565b5f818060200190518101906108d49190611829565b604051632cbf28cb60e21b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063b2fca32c9061090e908490600401611727565b5f6040518083038186803b158015610924575f5ffd5b505af4158015610936573d5f5f3e3d5ffd5b5050505081518160405160200161094d9190611727565b604051602081830303815290604052511461097b576040516350701b6160e01b815260040160405180910390fd5b7fca7f7aa563866a1d31c74deba224724d1da9c35cbb6f783f2ccf0182f91e34f883826040516109ac9291906118b5565b60405180910390a17f00000000000000000000000000000000000000000000000000000000000000006109df8382611965565b50505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a2e57604051632abf118b60e21b815260040160405180910390fd5b8015610476575f7f00000000000000000000000000000000000000000000000000000000000000008054610a61906118e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8d906118e2565b8015610ad85780601f10610aaf57610100808354040283529160200191610ad8565b820191905f5260205f20905b815481529060010190602001808311610abb57829003601f168201915b5050505050806020019051810190610af09190611829565b90505f610b26670de0b6b3a7640000807f000000000000000000000000000000000000000000000000000000000000000061139b565b6040516370a0823160e01b8152306004820152909150610bb9906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610b8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb39190611793565b306112d2565b8310610ce7576040516370a0823160e01b815230600482015273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063775669159084907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c63573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c879190611793565b866040518663ffffffff1660e01b8152600401610ca8959493929190611a20565b602060405180830381865af4158015610cc3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109df9190611793565b60405163581e517d60e01b815273__$acbb9ece542dcf2065f41aa3c8cca5827e$__9063581e517d90610ca89085907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009089908890600401611a20565b505050565b815f03610d76575050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610e02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e269190611a5f565b508015610f0c5760405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b158015610ec0575f5ffd5b505af1925050508015610ed1575060015b6105db576040518281527f323f803ab99bd4b7b37bba0e83169793239f293cc8b9d11837997563c5902eac9060200160405180910390a15050565b60405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b158015610f9f575f5ffd5b505af1158015610fb1573d5f5f3e3d5ffd5b505050505050565b60408051610200810182525f6101e08201818152825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526040516335ea6a7560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa1580156110bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e19190611b0e565b905090565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361112f57604051632abf118b60e21b815260040160405180910390fd5b8015610476575f7f00000000000000000000000000000000000000000000000000000000000000008054611162906118e2565b80601f016020809104026020016040519081016040528092919081815260200182805461118e906118e2565b80156111d95780601f106111b0576101008083540402835291602001916111d9565b820191905f5260205f20905b8154815290600101906020018083116111bc57829003601f168201915b50505050508060200190518101906111f19190611829565b604051637756691560e01b815290915073__$acbb9ece542dcf2065f41aa3c8cca5827e$__906377566915906112939084907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088907f000000000000000000000000000000000000000000000000000000000000000090600401611a20565b602060405180830381865af41580156112ae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d669190611793565b5f6112fc7f0000000000000000000000000000000000000000000000000000000000000000611451565b61139161136461132b7f0000000000000000000000000000000000000000000000000000000000000000611451565b6113359087611c4c565b7f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a764000061139b565b61136d85610804565b6020015161138390670de0b6b3a7640000611c63565b670de0b6b3a764000061139b565b61077d9190611c8a565b5f838302815f1985870982811083820303915050805f036113cf578382816113c5576113c5611c76565b049250505061077d565b8084116113e6576113e660038515026011186114c8565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b29190611ca9565b6114bd906012611cc4565b6102d090600a611dc0565b634e487b715f52806020526024601cfd5b60ff81168114610476575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561151e5761151e6114e7565b60405290565b6040516101e0810167ffffffffffffffff8111828210171561151e5761151e6114e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611571576115716114e7565b604052919050565b5f67ffffffffffffffff821115611592576115926114e7565b50601f01601f191660200190565b5f82601f8301126115af575f5ffd5b81356115c26115bd82611579565b611548565b8181528460208386010111156115d6575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215611603575f5ffd5b823561160e816114d9565b9150602083013567ffffffffffffffff811115611629575f5ffd5b611635858286016115a0565b9150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61077d602083018461163f565b5f6020828403121561168f575f5ffd5b5035919050565b6001600160a01b0381168114610476575f5ffd5b5f602082840312156116ba575f5ffd5b813561077d81611696565b634e487b7160e01b5f52602160045260245ffd5b5f8151600381106116f857634e487b7160e01b5f52602160045260245ffd5b808452506020820151602084015260408201516060604085015261171f606085018261163f565b949350505050565b602081525f61077d60208301846116d9565b8015158114610476575f5ffd5b5f60208284031215611756575f5ffd5b813561077d81611739565b5f60208284031215611771575f5ffd5b813567ffffffffffffffff811115611787575f5ffd5b61171f848285016115a0565b5f602082840312156117a3575f5ffd5b5051919050565b5f82601f8301126117b9575f5ffd5b81516117c76115bd82611579565b8181528460208386010111156117db575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215611807575f5ffd5b815167ffffffffffffffff81111561181d575f5ffd5b61171f848285016117aa565b5f60208284031215611839575f5ffd5b815167ffffffffffffffff81111561184f575f5ffd5b820160608185031215611860575f5ffd5b6118686114fb565b815160038110611876575f5ffd5b815260208281015190820152604082015167ffffffffffffffff81111561189b575f5ffd5b6118a7868285016117aa565b604083015250949350505050565b604081525f6118c760408301856116d9565b82810360208401526118d981856116d9565b95945050505050565b600181811c908216806118f657607f821691505b60208210810361191457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d6657805f5260205f20601f840160051c8101602085101561193f5750805b601f840160051c820191505b8181101561195e575f815560010161194b565b5050505050565b815167ffffffffffffffff81111561197f5761197f6114e7565b6119938161198d84546118e2565b8461191a565b6020601f8211600181146119c5575f83156119ae5750848201515b5f19600385901b1c1916600184901b17845561195e565b5f84815260208120601f198516915b828110156119f457878501518255602094850194600190920191016119d4565b5084821015611a1157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60a081525f611a3260a08301886116d9565b6001600160a01b039687166020840152949095166040820152606081019290925260809091015292915050565b5f60208284031215611a6f575f5ffd5b815161077d81611739565b5f60208284031215611a8a575f5ffd5b6040516020810167ffffffffffffffff81118282101715611aad57611aad6114e7565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114611ad9575f5ffd5b919050565b805164ffffffffff81168114611ad9575f5ffd5b805161ffff81168114611ad9575f5ffd5b8051611ad981611696565b5f6101e0828403128015611b20575f5ffd5b50611b29611524565b611b338484611a7a565b8152611b4160208401611aba565b6020820152611b5260408401611aba565b6040820152611b6360608401611aba565b6060820152611b7460808401611aba565b6080820152611b8560a08401611aba565b60a0820152611b9660c08401611ade565b60c0820152611ba760e08401611af2565b60e0820152611bb96101008401611b03565b610100820152611bcc6101208401611b03565b610120820152611bdf6101408401611b03565b610140820152611bf26101608401611b03565b610160820152611c056101808401611aba565b610180820152611c186101a08401611aba565b6101a0820152611c2b6101c08401611aba565b6101c08201529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176102d0576102d0611c38565b818103818111156102d0576102d0611c38565b634e487b7160e01b5f52601260045260245ffd5b5f82611ca457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611cb9575f5ffd5b815161077d816114d9565b60ff82811682821603908111156102d0576102d0611c38565b6001815b6001841115611d1857808504811115611cfc57611cfc611c38565b6001841615611d0a57908102905b60019390931c928002611ce1565b935093915050565b5f82611d2e575060016102d0565b81611d3a57505f6102d0565b8160018114611d505760028114611d5a57611d76565b60019150506102d0565b60ff841115611d6b57611d6b611c38565b50506001821b6102d0565b5060208310610133831016604e8410600b8410161715611d99575081810a6102d0565b611da55f198484611cdd565b805f1904821115611db857611db8611c38565b029392505050565b5f61077d60ff841683611d2056fea2646970667358221220e19d8046f8602bcb032d96b7e862b29980f87ac47a3ba88d03f9cd416094454c64736f6c634300081c0033",
"linkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 3193
},
{
"length": 20,
"start": 3943
},
{
"length": 20,
"start": 4233
},
{
"length": 20,
"start": 5526
}
]
}
},
"deployedLinkReferences": {
"@ensuro/swaplibrary/contracts/SwapLibrary.sol": {
"SwapLibrary": [
{
"length": 20,
"start": 2278
},
{
"length": 20,
"start": 3028
},
{
"length": 20,
"start": 3318
},
{
"length": 20,
"start": 4611
}
]
}
}
}