@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
213 lines (212 loc) • 19.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "AaveV3InvestStrategy",
"sourceName": "contracts/AaveV3InvestStrategy.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "asset_",
"type": "address"
},
{
"internalType": "contract IPool",
"name": "aave_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CanBeCalledOnlyThroughDelegateCall",
"type": "error"
},
{
"inputs": [],
"name": "CannotDisconnectWithAssets",
"type": "error"
},
{
"inputs": [],
"name": "NoExtraDataAllowed",
"type": "error"
},
{
"inputs": [],
"name": "ReserveNotFoundInAave",
"type": "error"
},
{
"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": "",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "forwardEntryPoint",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"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": "0x3060808181526040610120818152601e610160527f636f2e656e7375726f2e496e766573745374726174656779436c69656e74000061018052610140939093526101008290526101a09052902060a05234801561005a575f5ffd5b506040516110e03803806110e08339810160408190526100799161013f565b6040516335ea6a7560e01b81526001600160a01b0383811660048301525f91908316906335ea6a75906024016101e060405180830381865afa1580156100c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e59190610242565b61010001516001600160a01b0316036101115760405163c3eb4ed560e01b815260040160405180910390fd5b6001600160a01b0390811660c0521660e05261036c565b6001600160a01b038116811461013c575f5ffd5b50565b5f5f60408385031215610150575f5ffd5b825161015b81610128565b602084015190925061016c81610128565b809150509250929050565b6040516101e081016001600160401b03811182821017156101a657634e487b7160e01b5f52604160045260245ffd5b60405290565b5f602082840312156101bc575f5ffd5b604051602081016001600160401b03811182821017156101ea57634e487b7160e01b5f52604160045260245ffd5b6040529151825250919050565b80516001600160801b038116811461020d575f5ffd5b919050565b805164ffffffffff8116811461020d575f5ffd5b805161ffff8116811461020d575f5ffd5b805161020d81610128565b5f6101e0828403128015610254575f5ffd5b5061025d610177565b61026784846101ac565b8152610275602084016101f7565b6020820152610286604084016101f7565b6040820152610297606084016101f7565b60608201526102a8608084016101f7565b60808201526102b960a084016101f7565b60a08201526102ca60c08401610212565b60c08201526102db60e08401610226565b60e08201526102ed6101008401610237565b6101008201526103006101208401610237565b6101208201526103136101408401610237565b6101408201526103266101608401610237565b61016082015261033961018084016101f7565b61018082015261034c6101a084016101f7565b6101a082015261035f6101c084016101f7565b6101c08201529392505050565b60805160a05160c05160e051610cf46103ec5f395f818161014901528181610280015281816106e2015281816107bf015261084101525f81816102b50152818161070a01528181610790015261087c01525f61011601525f81816101db01528181610224015281816103830152818161046c01526104d50152610cf45ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80639c4667a2116100635780639c4667a2146101385780639cd4712814610183578063b6b55f2514610196578063ce96cb77146101a9578063f3e0ffbf146101bc575f5ffd5b80630981b1c21461009f5780632e1a7d4d146100c8578063402d267d146100dd5780635a117456146100fe5780635b9a4c3514610111575b5f5ffd5b6100b26100ad36600461099f565b6101cf565b6040516100bf91906109f1565b60405180910390f35b6100db6100d6366004610a26565b61021a565b005b6100f06100eb366004610a51565b610324565b6040519081526020016100bf565b6100db61010c366004610a79565b610379565b6100f07f000000000000000000000000000000000000000000000000000000000000000081565b61016b610146366004610a51565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100bf565b6100db610191366004610a94565b610462565b6100db6101a4366004610a26565b6104cb565b6100f06101b7366004610a51565b610523565b6100f06101ca366004610a51565b6105cf565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361009b57604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361026357604051632abf118b60e21b815260040160405180910390fd5b801561032157604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303815f875af11580156102fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031f9190610ace565b505b50565b5f5f61032e61064c565b805151909150600160381b16158061034d57508051516001603c1b1615155b8061036357508051516702000000000000001615155b1561037057505f92915050565b505f1992915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103c257604051632abf118b60e21b815260040160405180910390fd5b5f6103cb61064c565b610100015190508115801561044457506040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561041d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104419190610ace565b15155b1561031f576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ab57604051632abf118b60e21b815260040160405180910390fd5b805115610321576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361051457604051632abf118b60e21b815260040160405180910390fd5b80156103215761032181610779565b5f5f61052d61064c565b805151909150600160381b16158061054c57508051516001603c1b1615155b1561055957505f92915050565b6101008101516040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156105a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c89190610ace565b9392505050565b5f6105d861064c565b61010001516040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106469190610ace565b92915050565b60408051610200810182525f6101e08201818152825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526040516335ea6a7560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015610750573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107749190610b79565b905090565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610805573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108299190610ca3565b5060405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b1580156108bd575f5ffd5b505af11580156108cf573d5f5f3e3d5ffd5b5050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516101e0810167ffffffffffffffff8111828210171561090e5761090e6108d6565b60405290565b5f82601f830112610923575f5ffd5b813567ffffffffffffffff81111561093d5761093d6108d6565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561096c5761096c6108d6565b604052818152838201602001851015610983575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156109b0575f5ffd5b823560ff811681146109c0575f5ffd5b9150602083013567ffffffffffffffff8111156109db575f5ffd5b6109e785828601610914565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610a36575f5ffd5b5035919050565b6001600160a01b0381168114610321575f5ffd5b5f60208284031215610a61575f5ffd5b81356105c881610a3d565b8015158114610321575f5ffd5b5f60208284031215610a89575f5ffd5b81356105c881610a6c565b5f60208284031215610aa4575f5ffd5b813567ffffffffffffffff811115610aba575f5ffd5b610ac684828501610914565b949350505050565b5f60208284031215610ade575f5ffd5b5051919050565b5f60208284031215610af5575f5ffd5b6040516020810167ffffffffffffffff81118282101715610b1857610b186108d6565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610b44575f5ffd5b919050565b805164ffffffffff81168114610b44575f5ffd5b805161ffff81168114610b44575f5ffd5b8051610b4481610a3d565b5f6101e0828403128015610b8b575f5ffd5b50610b946108ea565b610b9e8484610ae5565b8152610bac60208401610b25565b6020820152610bbd60408401610b25565b6040820152610bce60608401610b25565b6060820152610bdf60808401610b25565b6080820152610bf060a08401610b25565b60a0820152610c0160c08401610b49565b60c0820152610c1260e08401610b5d565b60e0820152610c246101008401610b6e565b610100820152610c376101208401610b6e565b610120820152610c4a6101408401610b6e565b610140820152610c5d6101608401610b6e565b610160820152610c706101808401610b25565b610180820152610c836101a08401610b25565b6101a0820152610c966101c08401610b25565b6101c08201529392505050565b5f60208284031215610cb3575f5ffd5b81516105c881610a6c56fea264697066735822122029a377fd9d1563b2fcd907da31487aaed22d666fdb497ebc1f40f2cfd3d4f0a964736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80639c4667a2116100635780639c4667a2146101385780639cd4712814610183578063b6b55f2514610196578063ce96cb77146101a9578063f3e0ffbf146101bc575f5ffd5b80630981b1c21461009f5780632e1a7d4d146100c8578063402d267d146100dd5780635a117456146100fe5780635b9a4c3514610111575b5f5ffd5b6100b26100ad36600461099f565b6101cf565b6040516100bf91906109f1565b60405180910390f35b6100db6100d6366004610a26565b61021a565b005b6100f06100eb366004610a51565b610324565b6040519081526020016100bf565b6100db61010c366004610a79565b610379565b6100f07f000000000000000000000000000000000000000000000000000000000000000081565b61016b610146366004610a51565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100bf565b6100db610191366004610a94565b610462565b6100db6101a4366004610a26565b6104cb565b6100f06101b7366004610a51565b610523565b6100f06101ca366004610a51565b6105cf565b60606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361009b57604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361026357604051632abf118b60e21b815260040160405180910390fd5b801561032157604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301527f000000000000000000000000000000000000000000000000000000000000000016906369328dec906064016020604051808303815f875af11580156102fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031f9190610ace565b505b50565b5f5f61032e61064c565b805151909150600160381b16158061034d57508051516001603c1b1615155b8061036357508051516702000000000000001615155b1561037057505f92915050565b505f1992915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103c257604051632abf118b60e21b815260040160405180910390fd5b5f6103cb61064c565b610100015190508115801561044457506040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561041d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104419190610ace565b15155b1561031f576040516342a176d160e11b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104ab57604051632abf118b60e21b815260040160405180910390fd5b805115610321576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361051457604051632abf118b60e21b815260040160405180910390fd5b80156103215761032181610779565b5f5f61052d61064c565b805151909150600160381b16158061054c57508051516001603c1b1615155b1561055957505f92915050565b6101008101516040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156105a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c89190610ace565b9392505050565b5f6105d861064c565b61010001516040516370a0823160e01b81526001600160a01b038481166004830152909116906370a0823190602401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106469190610ace565b92915050565b60408051610200810182525f6101e08201818152825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c08101919091526040516335ea6a7560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906335ea6a75906024016101e060405180830381865afa158015610750573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107749190610b79565b905090565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610805573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108299190610ca3565b5060405163617ba03760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301525f60648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba037906084015f604051808303815f87803b1580156108bd575f5ffd5b505af11580156108cf573d5f5f3e3d5ffd5b5050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516101e0810167ffffffffffffffff8111828210171561090e5761090e6108d6565b60405290565b5f82601f830112610923575f5ffd5b813567ffffffffffffffff81111561093d5761093d6108d6565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561096c5761096c6108d6565b604052818152838201602001851015610983575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f604083850312156109b0575f5ffd5b823560ff811681146109c0575f5ffd5b9150602083013567ffffffffffffffff8111156109db575f5ffd5b6109e785828601610914565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610a36575f5ffd5b5035919050565b6001600160a01b0381168114610321575f5ffd5b5f60208284031215610a61575f5ffd5b81356105c881610a3d565b8015158114610321575f5ffd5b5f60208284031215610a89575f5ffd5b81356105c881610a6c565b5f60208284031215610aa4575f5ffd5b813567ffffffffffffffff811115610aba575f5ffd5b610ac684828501610914565b949350505050565b5f60208284031215610ade575f5ffd5b5051919050565b5f60208284031215610af5575f5ffd5b6040516020810167ffffffffffffffff81118282101715610b1857610b186108d6565b6040529151825250919050565b80516fffffffffffffffffffffffffffffffff81168114610b44575f5ffd5b919050565b805164ffffffffff81168114610b44575f5ffd5b805161ffff81168114610b44575f5ffd5b8051610b4481610a3d565b5f6101e0828403128015610b8b575f5ffd5b50610b946108ea565b610b9e8484610ae5565b8152610bac60208401610b25565b6020820152610bbd60408401610b25565b6040820152610bce60608401610b25565b6060820152610bdf60808401610b25565b6080820152610bf060a08401610b25565b60a0820152610c0160c08401610b49565b60c0820152610c1260e08401610b5d565b60e0820152610c246101008401610b6e565b610100820152610c376101208401610b6e565b610120820152610c4a6101408401610b6e565b610140820152610c5d6101608401610b6e565b610160820152610c706101808401610b25565b610180820152610c836101a08401610b25565b6101a0820152610c966101c08401610b25565b6101c08201529392505050565b5f60208284031215610cb3575f5ffd5b81516105c881610a6c56fea264697066735822122029a377fd9d1563b2fcd907da31487aaed22d666fdb497ebc1f40f2cfd3d4f0a964736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}