@ensuro/vaults
Version:
ERC4626s for asset management, used by the Ensuro Protocol
345 lines (344 loc) • 23.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "DummyInvestStrategy",
"sourceName": "contracts/mock/DummyInvestStrategy.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "asset_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "string",
"name": "where",
"type": "string"
}
],
"name": "Fail",
"type": "error"
},
{
"inputs": [],
"name": "NoExtraDataAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "initData",
"type": "bytes"
}
],
"name": "Connect",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "force",
"type": "bool"
}
],
"name": "Disconnect",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "bool",
"name": "failConnect",
"type": "bool"
},
{
"internalType": "bool",
"name": "failDisconnect",
"type": "bool"
},
{
"internalType": "bool",
"name": "failDeposit",
"type": "bool"
},
{
"internalType": "bool",
"name": "failWithdraw",
"type": "bool"
}
],
"indexed": false,
"internalType": "struct DummyInvestStrategy.DummyStorage",
"name": "fail",
"type": "tuple"
}
],
"name": "SetFail",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "assets",
"type": "uint256"
}
],
"name": "Withdraw",
"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": "getFail",
"outputs": [
{
"components": [
{
"internalType": "bool",
"name": "failConnect",
"type": "bool"
},
{
"internalType": "bool",
"name": "failDisconnect",
"type": "bool"
},
{
"internalType": "bool",
"name": "failDeposit",
"type": "bool"
},
{
"internalType": "bool",
"name": "failWithdraw",
"type": "bool"
}
],
"internalType": "struct DummyInvestStrategy.DummyStorage",
"name": "",
"type": "tuple"
}
],
"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": "other",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "storageSlot",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"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": "0x3060a08190526040610120818152601e610160527f636f2e656e7375726f2e496e766573745374726174656779436c69656e740000610180526101409290925260806101008190526101a0909152902060c05234801561005d575f5ffd5b506040516111aa3803806111aa83398101604081905261007c916100ce565b6001600160a01b038116608052604051610095906100c1565b604051809103905ff0801580156100ae573d5f5f3e3d5ffd5b506001600160a01b031660e052506100fb565b6101858061102583390190565b5f602082840312156100de575f5ffd5b81516001600160a01b03811681146100f4575f5ffd5b9392505050565b60805160a05160c05160e051610ea661017f5f395f818161017301528181610380015281816106340152818161072f01526107d801525f818161012c015281816102710152818161053a01528181610858015261094401525f50505f81816101be0152818161034b015281816106630152818161075701526108020152610ea65ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c8063852958771161006e578063852958771461016e5780639c4667a2146101ad5780639cd47128146101e0578063b6b55f25146101f3578063ce96cb7714610206578063f3e0ffbf14610219575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f35780635a117456146101145780635b9a4c3514610127578063728d6fd81461014e575b5f5ffd5b6100c86100c3366004610a8e565b61022c565b6040516100d59190610ae0565b60405180910390f35b6100f16100ec366004610b15565b6102ea565b005b610106610101366004610b2c565b610413565b6040519081526020016100d5565b6100f1610122366004610b69565b610435565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b61016161015c366004610b2c565b6104ae565b6040516100d59190610b84565b6101957f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6101956101bb366004610b2c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6100f16101ee366004610bb7565b6104e0565b6100f1610201366004610b15565b6105d9565b610106610214366004610b2c565b6106fe565b610106610227366004610b2c565b6107c1565b60605f60ff8416801561024157610241610bf1565b90505f81801561025357610253610bf1565b036102d4575f8380602001905181019061026d9190610c05565b90507f000000000000000000000000000000000000000000000000000000000000000061029a8582610d0e565b507f973e473eebb9c0190db312a86661d30a6e022561e4049e3850ddc7e5d24ba9d1816040516102ca9190610b84565b60405180910390a1505b505060408051602081019091525f815292915050565b6102f2610833565b606001511561033457604051633c47dfc360e21b8152602060048201526008602482015267776974686472617760c01b60448201526064015b60405180910390fd5b6040516352f950a960e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a5f2a152906064015f604051808303815f87803b1580156103c1575f5ffd5b505af11580156103d3573d5f5f3e3d5ffd5b505050507f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d8160405161040891815260200190565b60405180910390a150565b5f61041d82610916565b604001511561042d57505f919050565b505f19919050565b61043d610833565b602001511561047c57604051633c47dfc360e21b815260206004820152600a602482015269191a5cd8dbdb9b9958dd60b21b604482015260640161032b565b60405181151581527f1b5482bdd0870e5877dfba574a78890a9ed35fa5fe455e49d0ee06d40014d15e90602001610408565b604080516080810182525f8082526020820181905291810182905260608101919091526104da82610916565b92915050565b5f818060200190518101906104f59190610c05565b905081518160405160200161050a9190610b84565b6040516020818303038152906040525114610538576040516350701b6160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006105638382610d0e565b5080511561059e57604051633c47dfc360e21b815260206004820152600760248201526618dbdb9b9958dd60ca1b604482015260640161032b565b7f71149fec4141134c52c251b737df39ca5dd7286b51b86a0b68b2dd900243c0ce826040516105cd9190610ae0565b60405180910390a15050565b6105e1610833565b604001511561061d57604051633c47dfc360e21b815260206004820152600760248201526619195c1bdcda5d60ca1b604482015260640161032b565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af11580156106a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cd9190610dc9565b506040518181527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e3842690602001610408565b5f61070882610916565b606001511561071857505f919050565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561079d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da9190610de4565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610782565b604080516080810182525f8082526020820181905291810182905260608101919091527f0000000000000000000000000000000000000000000000000000000000000000805461088290610c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546108ae90610c8a565b80156108f95780601f106108d0576101008083540402835291602001916108f9565b820191905f5260205f20905b8154815290600101906020018083116108dc57829003601f168201915b50505050508060200190518101906109119190610c05565b905090565b604080516080810182525f80825260208201819052818301819052606082015290516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b038316906347e57533906024015f60405180830381865afa158015610996573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109bd9190810190610dfb565b8060200190518101906104da9190610c05565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a0d57610a0d6109d0565b604052919050565b5f67ffffffffffffffff821115610a2e57610a2e6109d0565b50601f01601f191660200190565b5f82601f830112610a4b575f5ffd5b8135610a5e610a5982610a15565b6109e4565b818152846020838601011115610a72575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610a9f575f5ffd5b823560ff81168114610aaf575f5ffd5b9150602083013567ffffffffffffffff811115610aca575f5ffd5b610ad685828601610a3c565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610b25575f5ffd5b5035919050565b5f60208284031215610b3c575f5ffd5b81356001600160a01b0381168114610b52575f5ffd5b9392505050565b8015158114610b66575f5ffd5b50565b5f60208284031215610b79575f5ffd5b8135610b5281610b59565b81511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b5f60208284031215610bc7575f5ffd5b813567ffffffffffffffff811115610bdd575f5ffd5b610be984828501610a3c565b949350505050565b634e487b7160e01b5f52602160045260245ffd5b5f6080828403128015610c16575f5ffd5b506040516080810167ffffffffffffffff81118282101715610c3a57610c3a6109d0565b6040528251610c4881610b59565b81526020830151610c5881610b59565b60208201526040830151610c6b81610b59565b60408201526060830151610c7e81610b59565b60608201529392505050565b600181811c90821680610c9e57607f821691505b602082108103610cbc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d0957805f5260205f20601f840160051c81016020851015610ce75750805b601f840160051c820191505b81811015610d06575f8155600101610cf3565b50505b505050565b815167ffffffffffffffff811115610d2857610d286109d0565b610d3c81610d368454610c8a565b84610cc2565b6020601f821160018114610d6e575f8315610d575750848201515b5f19600385901b1c1916600184901b178455610d06565b5f84815260208120601f198516915b82811015610d9d5787850151825560209485019460019092019101610d7d565b5084821015610dba57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610dd9575f5ffd5b8151610b5281610b59565b5f60208284031215610df4575f5ffd5b5051919050565b5f60208284031215610e0b575f5ffd5b815167ffffffffffffffff811115610e21575f5ffd5b8201601f81018413610e31575f5ffd5b8051610e3f610a5982610a15565b818152856020838501011115610e53575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea264697066735822122013f5aef5a23dd8da0b8fe73ec8df9ee03b8ec1ae3d3a399cd6d0f5bf202f943364736f6c634300081c00336080604052348015600e575f5ffd5b506101698061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063a5f2a1521461002d575b5f5ffd5b61004061003b3660046100cf565b610042565b005b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af115801561008e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b2919061010d565b50505050565b6001600160a01b03811681146100cc575f5ffd5b50565b5f5f5f606084860312156100e1575f5ffd5b83356100ec816100b8565b925060208401356100fc816100b8565b929592945050506040919091013590565b5f6020828403121561011d575f5ffd5b8151801515811461012c575f5ffd5b939250505056fea264697066735822122082e3a8f78bbc3b95447e611a9b3857054b559d0c60ec6e75220b7f329345c41b64736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c8063852958771161006e578063852958771461016e5780639c4667a2146101ad5780639cd47128146101e0578063b6b55f25146101f3578063ce96cb7714610206578063f3e0ffbf14610219575f5ffd5b80630981b1c2146100b55780632e1a7d4d146100de578063402d267d146100f35780635a117456146101145780635b9a4c3514610127578063728d6fd81461014e575b5f5ffd5b6100c86100c3366004610a8e565b61022c565b6040516100d59190610ae0565b60405180910390f35b6100f16100ec366004610b15565b6102ea565b005b610106610101366004610b2c565b610413565b6040519081526020016100d5565b6100f1610122366004610b69565b610435565b6101067f000000000000000000000000000000000000000000000000000000000000000081565b61016161015c366004610b2c565b6104ae565b6040516100d59190610b84565b6101957f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d5565b6101956101bb366004610b2c565b507f000000000000000000000000000000000000000000000000000000000000000090565b6100f16101ee366004610bb7565b6104e0565b6100f1610201366004610b15565b6105d9565b610106610214366004610b2c565b6106fe565b610106610227366004610b2c565b6107c1565b60605f60ff8416801561024157610241610bf1565b90505f81801561025357610253610bf1565b036102d4575f8380602001905181019061026d9190610c05565b90507f000000000000000000000000000000000000000000000000000000000000000061029a8582610d0e565b507f973e473eebb9c0190db312a86661d30a6e022561e4049e3850ddc7e5d24ba9d1816040516102ca9190610b84565b60405180910390a1505b505060408051602081019091525f815292915050565b6102f2610833565b606001511561033457604051633c47dfc360e21b8152602060048201526008602482015267776974686472617760c01b60448201526064015b60405180910390fd5b6040516352f950a960e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152306024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a5f2a152906064015f604051808303815f87803b1580156103c1575f5ffd5b505af11580156103d3573d5f5f3e3d5ffd5b505050507f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d8160405161040891815260200190565b60405180910390a150565b5f61041d82610916565b604001511561042d57505f919050565b505f19919050565b61043d610833565b602001511561047c57604051633c47dfc360e21b815260206004820152600a602482015269191a5cd8dbdb9b9958dd60b21b604482015260640161032b565b60405181151581527f1b5482bdd0870e5877dfba574a78890a9ed35fa5fe455e49d0ee06d40014d15e90602001610408565b604080516080810182525f8082526020820181905291810182905260608101919091526104da82610916565b92915050565b5f818060200190518101906104f59190610c05565b905081518160405160200161050a9190610b84565b6040516020818303038152906040525114610538576040516350701b6160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006105638382610d0e565b5080511561059e57604051633c47dfc360e21b815260206004820152600760248201526618dbdb9b9958dd60ca1b604482015260640161032b565b7f71149fec4141134c52c251b737df39ca5dd7286b51b86a0b68b2dd900243c0ce826040516105cd9190610ae0565b60405180910390a15050565b6105e1610833565b604001511561061d57604051633c47dfc360e21b815260206004820152600760248201526619195c1bdcda5d60ca1b604482015260640161032b565b60405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af11580156106a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106cd9190610dc9565b506040518181527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e3842690602001610408565b5f61070882610916565b606001511561071857505f919050565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a08231906024015b602060405180830381865afa15801561079d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104da9190610de4565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401610782565b604080516080810182525f8082526020820181905291810182905260608101919091527f0000000000000000000000000000000000000000000000000000000000000000805461088290610c8a565b80601f01602080910402602001604051908101604052809291908181526020018280546108ae90610c8a565b80156108f95780601f106108d0576101008083540402835291602001916108f9565b820191905f5260205f20905b8154815290600101906020018083116108dc57829003601f168201915b50505050508060200190518101906109119190610c05565b905090565b604080516080810182525f80825260208201819052818301819052606082015290516347e5753360e01b81527f000000000000000000000000000000000000000000000000000000000000000060048201526001600160a01b038316906347e57533906024015f60405180830381865afa158015610996573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109bd9190810190610dfb565b8060200190518101906104da9190610c05565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a0d57610a0d6109d0565b604052919050565b5f67ffffffffffffffff821115610a2e57610a2e6109d0565b50601f01601f191660200190565b5f82601f830112610a4b575f5ffd5b8135610a5e610a5982610a15565b6109e4565b818152846020838601011115610a72575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610a9f575f5ffd5b823560ff81168114610aaf575f5ffd5b9150602083013567ffffffffffffffff811115610aca575f5ffd5b610ad685828601610a3c565b9150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610b25575f5ffd5b5035919050565b5f60208284031215610b3c575f5ffd5b81356001600160a01b0381168114610b52575f5ffd5b9392505050565b8015158114610b66575f5ffd5b50565b5f60208284031215610b79575f5ffd5b8135610b5281610b59565b81511515815260208083015115159082015260408083015115159082015260609182015115159181019190915260800190565b5f60208284031215610bc7575f5ffd5b813567ffffffffffffffff811115610bdd575f5ffd5b610be984828501610a3c565b949350505050565b634e487b7160e01b5f52602160045260245ffd5b5f6080828403128015610c16575f5ffd5b506040516080810167ffffffffffffffff81118282101715610c3a57610c3a6109d0565b6040528251610c4881610b59565b81526020830151610c5881610b59565b60208201526040830151610c6b81610b59565b60408201526060830151610c7e81610b59565b60608201529392505050565b600181811c90821680610c9e57607f821691505b602082108103610cbc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610d0957805f5260205f20601f840160051c81016020851015610ce75750805b601f840160051c820191505b81811015610d06575f8155600101610cf3565b50505b505050565b815167ffffffffffffffff811115610d2857610d286109d0565b610d3c81610d368454610c8a565b84610cc2565b6020601f821160018114610d6e575f8315610d575750848201515b5f19600385901b1c1916600184901b178455610d06565b5f84815260208120601f198516915b82811015610d9d5787850151825560209485019460019092019101610d7d565b5084821015610dba57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610dd9575f5ffd5b8151610b5281610b59565b5f60208284031215610df4575f5ffd5b5051919050565b5f60208284031215610e0b575f5ffd5b815167ffffffffffffffff811115610e21575f5ffd5b8201601f81018413610e31575f5ffd5b8051610e3f610a5982610a15565b818152856020838501011115610e53575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea264697066735822122013f5aef5a23dd8da0b8fe73ec8df9ee03b8ec1ae3d3a399cd6d0f5bf202f943364736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}