UNPKG

@ensuro/vaults

Version:

ERC4626s for asset management, used by the Ensuro Protocol

216 lines (215 loc) 15.1 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC4626InvestStrategy", "sourceName": "contracts/strategies/ERC4626InvestStrategy.sol", "abi": [ { "inputs": [ { "internalType": "contract IERC4626", "name": "vault_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CanBeCalledOnlyThroughDelegateCall", "type": "error" }, { "inputs": [], "name": "CannotDisconnectWithAssets", "type": "error" }, { "inputs": [], "name": "NoExtraDataAllowed", "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": [], "name": "investVault", "outputs": [ { "internalType": "contract IERC4626", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contract_", "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": "0x3060808181526040610120818152601e610160527f636f2e656e7375726f2e496e766573745374726174656779436c69656e74000061018052610140939093526101008290526101a09052902060a05234801561005a575f5ffd5b50604051610b62380380610b628339810160408190526100799161010e565b6001600160a01b03811660c0819052604080516338d52e0f60e01b815290516338d52e0f916004808201926020929091908290030181865afa1580156100c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e5919061010e565b6001600160a01b031660e05250610130565b6001600160a01b038116811461010b575f5ffd5b50565b5f6020828403121561011e575f5ffd5b8151610129816100f7565b9392505050565b60805160a05160c05160e0516109ab6101b75f395f818161015401526105b501525f81816101c9015281816102b70152818161034f01528181610428015281816105860152818161063c0152818161069401526106e601525f61012101525f818161020c01528181610255015281816103cb015281816104c7015261053001526109ab5ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80639c4667a21161006e5780639c4667a2146101435780639cd471281461018e578063b6b55f25146101a1578063ce96cb77146101b4578063de2a87b5146101c7578063f3e0ffbf146101ed575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e85780635a117456146101095780635b9a4c351461011c575b5f5ffd5b6100bd6100b8366004610816565b610200565b6040516100ca9190610868565b60405180910390f35b6100e66100e136600461089d565b61024b565b005b6100fb6100f63660046108b4565b61032e565b6040519081526020016100ca565b6100e66101173660046108ee565b6103c1565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101766101513660046108b4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e661019c366004610909565b6104bd565b6100e66101af36600461089d565b610526565b6100fb6101c23660046108b4565b610673565b7f0000000000000000000000000000000000000000000000000000000000000000610176565b6100fb6101fb3660046108b4565b6106c5565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036100a657604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361029457604051632abf118b60e21b815260040160405180910390fd5b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610306573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032a9190610943565b5050565b60405163402d267d60e01b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063402d267d906024015b602060405180830381865afa158015610397573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bb9190610943565b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361040a57604051632abf118b60e21b815260040160405180910390fd5b8015801561049c57506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610475573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190610943565b15155b156104ba576040516342a176d160e11b815260040160405180910390fd5b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361050657604051632abf118b60e21b815260040160405180910390fd5b8051156104ba576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361056f57604051632abf118b60e21b815260040160405180910390fd5b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af11580156105fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061f919061095a565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016102ea565b60405163ce96cb7760e01b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ce96cb779060240161037c565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906307a2d13a9082906370a0823190602401602060405180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107599190610943565b6040518263ffffffff1660e01b815260040161037c91815260200190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261079a575f5ffd5b813567ffffffffffffffff8111156107b4576107b4610777565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107e3576107e3610777565b6040528181528382016020018510156107fa575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610827575f5ffd5b823560ff81168114610837575f5ffd5b9150602083013567ffffffffffffffff811115610852575f5ffd5b61085e8582860161078b565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f602082840312156108ad575f5ffd5b5035919050565b5f602082840312156108c4575f5ffd5b81356001600160a01b03811681146108da575f5ffd5b9392505050565b80151581146104ba575f5ffd5b5f602082840312156108fe575f5ffd5b81356108da816108e1565b5f60208284031215610919575f5ffd5b813567ffffffffffffffff81111561092f575f5ffd5b61093b8482850161078b565b949350505050565b5f60208284031215610953575f5ffd5b5051919050565b5f6020828403121561096a575f5ffd5b81516108da816108e156fea26469706673582212206211cf4f4a2c3f65954bbdb6d146b5b47a7a47c53a2b6567ee3200d8aa651b2864736f6c634300081e0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80639c4667a21161006e5780639c4667a2146101435780639cd471281461018e578063b6b55f25146101a1578063ce96cb77146101b4578063de2a87b5146101c7578063f3e0ffbf146101ed575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e85780635a117456146101095780635b9a4c351461011c575b5f5ffd5b6100bd6100b8366004610816565b610200565b6040516100ca9190610868565b60405180910390f35b6100e66100e136600461089d565b61024b565b005b6100fb6100f63660046108b4565b61032e565b6040519081526020016100ca565b6100e66101173660046108ee565b6103c1565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b6101766101513660046108b4565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e661019c366004610909565b6104bd565b6100e66101af36600461089d565b610526565b6100fb6101c23660046108b4565b610673565b7f0000000000000000000000000000000000000000000000000000000000000000610176565b6100fb6101fb3660046108b4565b6106c5565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036100a657604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361029457604051632abf118b60e21b815260040160405180910390fd5b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610306573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032a9190610943565b5050565b60405163402d267d60e01b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063402d267d906024015b602060405180830381865afa158015610397573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103bb9190610943565b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361040a57604051632abf118b60e21b815260040160405180910390fd5b8015801561049c57506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610475573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190610943565b15155b156104ba576040516342a176d160e11b815260040160405180910390fd5b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361050657604051632abf118b60e21b815260040160405180910390fd5b8051156104ba576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361056f57604051632abf118b60e21b815260040160405180910390fd5b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af11580156105fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061f919061095a565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016102ea565b60405163ce96cb7760e01b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ce96cb779060240161037c565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906307a2d13a9082906370a0823190602401602060405180830381865afa158015610735573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107599190610943565b6040518263ffffffff1660e01b815260040161037c91815260200190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261079a575f5ffd5b813567ffffffffffffffff8111156107b4576107b4610777565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156107e3576107e3610777565b6040528181528382016020018510156107fa575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610827575f5ffd5b823560ff81168114610837575f5ffd5b9150602083013567ffffffffffffffff811115610852575f5ffd5b61085e8582860161078b565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f602082840312156108ad575f5ffd5b5035919050565b5f602082840312156108c4575f5ffd5b81356001600160a01b03811681146108da575f5ffd5b9392505050565b80151581146104ba575f5ffd5b5f602082840312156108fe575f5ffd5b81356108da816108e1565b5f60208284031215610919575f5ffd5b813567ffffffffffffffff81111561092f575f5ffd5b61093b8482850161078b565b949350505050565b5f60208284031215610953575f5ffd5b5051919050565b5f6020828403121561096a575f5ffd5b81516108da816108e156fea26469706673582212206211cf4f4a2c3f65954bbdb6d146b5b47a7a47c53a2b6567ee3200d8aa651b2864736f6c634300081e0033", "linkReferences": {}, "deployedLinkReferences": {} }