@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
216 lines (215 loc) • 17.6 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MorphoVaultV2InvestStrategy",
"sourceName": "contracts/strategies/MorphoVaultV2InvestStrategy.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": "",
"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": "0x3060808181526040610120818152601e610160527f636f2e656e7375726f2e496e766573745374726174656779436c69656e74000061018052610140939093526101008290526101a09052902060a05234801561005a575f5ffd5b50604051610de1380380610de18339810160408190526100799161011f565b80806001600160a01b031660c0816001600160a01b031681525050806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f4919061011f565b6001600160a01b031660e052506101419050565b6001600160a01b038116811461011c575f5ffd5b50565b5f6020828403121561012f575f5ffd5b815161013a81610108565b9392505050565b60805160a05160c05160e051610c206101c15f395f8181610155015261052301525f81816101ca015281816102b801528181610396015281816104f4015281816105aa01528181610614015261069101525f61012201525f818161020d015281816102560152818161033901528181610435015261049e0152610c205ff3fe608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80639c4667a21161006e5780639c4667a2146101445780639cd471281461018f578063b6b55f25146101a2578063ce96cb77146101b5578063de2a87b5146101c8578063f3e0ffbf146101ee575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e85780635a1174561461010a5780635b9a4c351461011d575b5f5ffd5b6100bd6100b8366004610a05565b610201565b6040516100ca9190610a57565b60405180910390f35b6100e66100e1366004610a8c565b61024c565b005b6100fc6100f6366004610aa3565b505f1990565b6040519081526020016100ca565b6100e6610118366004610ad6565b61032f565b6100fc7f000000000000000000000000000000000000000000000000000000000000000081565b610177610152366004610aa3565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e661019d366004610af1565b61042b565b6100e66101b0366004610a8c565b610494565b6100fc6101c3366004610aa3565b6105e1565b7f0000000000000000000000000000000000000000000000000000000000000000610177565b6100fc6101fc366004610aa3565b6105f1565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036100a657604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361029557604051632abf118b60e21b815260040160405180910390fd5b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610307573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032b9190610b2b565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361037857604051632abf118b60e21b815260040160405180910390fd5b8015801561040a57506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156103e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104079190610b2b565b15155b15610428576040516342a176d160e11b815260040160405180910390fd5b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047457604051632abf118b60e21b815260040160405180910390fd5b805115610428576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104dd57604051632abf118b60e21b815260040160405180910390fd5b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610569573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058d9190610b42565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016102eb565b5f6105eb826105f1565b92915050565b6040516370a0823160e01b81526001600160a01b0382811660048301525f9182917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610659573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067d9190610b2b565b9050805f0361068e57505f92915050565b5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663c04637116040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107139190610b5d565b9050426107236201518083610b84565b67ffffffffffffffff1610156107a35760405163266d6a8360e11b8152600481018490526001600160a01b03831690634cdad50690602401602060405180830381865afa158015610776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079a9190610b2b565b95945050505050565b5f826001600160a01b031663ce04bebb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108049190610bb0565b6001600160801b031690505f836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108709190610b2b565b905061087d828683610888565b979650505050505050565b5f5f5f6108958686610939565b91509150815f036108b9578381816108af576108af610bd6565b0492505050610932565b8184116108d0576108d06003851502601118610955565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610989575f5ffd5b813567ffffffffffffffff8111156109a3576109a3610966565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109d2576109d2610966565b6040528181528382016020018510156109e9575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610a16575f5ffd5b823560ff81168114610a26575f5ffd5b9150602083013567ffffffffffffffff811115610a41575f5ffd5b610a4d8582860161097a565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610a9c575f5ffd5b5035919050565b5f60208284031215610ab3575f5ffd5b81356001600160a01b0381168114610932575f5ffd5b8015158114610428575f5ffd5b5f60208284031215610ae6575f5ffd5b813561093281610ac9565b5f60208284031215610b01575f5ffd5b813567ffffffffffffffff811115610b17575f5ffd5b610b238482850161097a565b949350505050565b5f60208284031215610b3b575f5ffd5b5051919050565b5f60208284031215610b52575f5ffd5b815161093281610ac9565b5f60208284031215610b6d575f5ffd5b815167ffffffffffffffff81168114610932575f5ffd5b67ffffffffffffffff81811683821601908111156105eb57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610bc0575f5ffd5b81516001600160801b0381168114610932575f5ffd5b634e487b7160e01b5f52601260045260245ffdfea2646970667358221220b4b0df43d7d49945f418e15cd1c11d67cf53f400c66c3ced1ec1b7822b7a754364736f6c634300081e0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100a6575f3560e01c80639c4667a21161006e5780639c4667a2146101445780639cd471281461018f578063b6b55f25146101a2578063ce96cb77146101b5578063de2a87b5146101c8578063f3e0ffbf146101ee575f5ffd5b80630981b1c2146100aa5780632e1a7d4d146100d3578063402d267d146100e85780635a1174561461010a5780635b9a4c351461011d575b5f5ffd5b6100bd6100b8366004610a05565b610201565b6040516100ca9190610a57565b60405180910390f35b6100e66100e1366004610a8c565b61024c565b005b6100fc6100f6366004610aa3565b505f1990565b6040519081526020016100ca565b6100e6610118366004610ad6565b61032f565b6100fc7f000000000000000000000000000000000000000000000000000000000000000081565b610177610152366004610aa3565b507f000000000000000000000000000000000000000000000000000000000000000090565b6040516001600160a01b0390911681526020016100ca565b6100e661019d366004610af1565b61042b565b6100e66101b0366004610a8c565b610494565b6100fc6101c3366004610aa3565b6105e1565b7f0000000000000000000000000000000000000000000000000000000000000000610177565b6100fc6101fc366004610aa3565b6105f1565b60606001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036100a657604051632abf118b60e21b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361029557604051632abf118b60e21b815260040160405180910390fd5b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303815f875af1158015610307573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032b9190610b2b565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361037857604051632abf118b60e21b815260040160405180910390fd5b8015801561040a57506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156103e3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104079190610b2b565b15155b15610428576040516342a176d160e11b815260040160405180910390fd5b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047457604051632abf118b60e21b815260040160405180910390fd5b805115610428576040516350701b6160e01b815260040160405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104dd57604051632abf118b60e21b815260040160405180910390fd5b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610569573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058d9190610b42565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016102eb565b5f6105eb826105f1565b92915050565b6040516370a0823160e01b81526001600160a01b0382811660048301525f9182917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610659573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067d9190610b2b565b9050805f0361068e57505f92915050565b5f7f000000000000000000000000000000000000000000000000000000000000000090505f816001600160a01b031663c04637116040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107139190610b5d565b9050426107236201518083610b84565b67ffffffffffffffff1610156107a35760405163266d6a8360e11b8152600481018490526001600160a01b03831690634cdad50690602401602060405180830381865afa158015610776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079a9190610b2b565b95945050505050565b5f826001600160a01b031663ce04bebb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108049190610bb0565b6001600160801b031690505f836001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108709190610b2b565b905061087d828683610888565b979650505050505050565b5f5f5f6108958686610939565b91509150815f036108b9578381816108af576108af610bd6565b0492505050610932565b8184116108d0576108d06003851502601118610955565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150505b9392505050565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610989575f5ffd5b813567ffffffffffffffff8111156109a3576109a3610966565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109d2576109d2610966565b6040528181528382016020018510156109e9575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610a16575f5ffd5b823560ff81168114610a26575f5ffd5b9150602083013567ffffffffffffffff811115610a41575f5ffd5b610a4d8582860161097a565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610a9c575f5ffd5b5035919050565b5f60208284031215610ab3575f5ffd5b81356001600160a01b0381168114610932575f5ffd5b8015158114610428575f5ffd5b5f60208284031215610ae6575f5ffd5b813561093281610ac9565b5f60208284031215610b01575f5ffd5b813567ffffffffffffffff811115610b17575f5ffd5b610b238482850161097a565b949350505050565b5f60208284031215610b3b575f5ffd5b5051919050565b5f60208284031215610b52575f5ffd5b815161093281610ac9565b5f60208284031215610b6d575f5ffd5b815167ffffffffffffffff81168114610932575f5ffd5b67ffffffffffffffff81811683821601908111156105eb57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610bc0575f5ffd5b81516001600160801b0381168114610932575f5ffd5b634e487b7160e01b5f52601260045260245ffdfea2646970667358221220b4b0df43d7d49945f418e15cd1c11d67cf53f400c66c3ced1ec1b7822b7a754364736f6c634300081e0033",
"linkReferences": {},
"deployedLinkReferences": {}
}