Files

552 lines
27 KiB
JSON
Raw Permalink Normal View History

{
"_format": "hh-sol-artifact-1",
"contractName": "CollateralAdapter",
"sourceName": "contracts/vault/adapters/CollateralAdapter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "ledger_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "AddressInsufficientBalance",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CollateralDeposited",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "liquidator",
"type": "address"
}
],
"name": "CollateralSeized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CollateralWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LIQUIDATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "VAULT_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "approveAsset",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "approvedAssets",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ledger",
"outputs": [
{
"internalType": "contract ILedger",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "revokeAsset",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "liquidator",
"type": "address"
}
],
"name": "seize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "ledger_",
"type": "address"
}
],
"name": "setLedger",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60803461008f57601f61106238819003918201601f19168301916001600160401b0383118484101761009457808492604094855283398101031261008f5761005f610055602061004e846100aa565b93016100aa565b91600180556100be565b50600280546001600160a01b0319166001600160a01b0392909216919091179055604051610f13908161014f8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361008f57565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1661014a57818052816020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b509056fe60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816301ffc9a7146109bb575080630f3bdd5f1461097b57806316d8887a14610940578063248a9ca3146109175780632f2ff15d146108ee5780633246887d1461085c57806336568abe1461081557806356397c35146107ec5780638340f5491461056857806391d148541461052457806397eb0088146104e657806398c4f1ac146104ab578063a217fddf14610490578063a30811c814610295578063a75995e41461024e578063d547741f146102105763d9caed1203610011573461020c576100f336610a3b565b92906100fd610d80565b610105610c0b565b610110841515610a70565b6002546001600160a01b03928791841661012987610ae6565b91813b15610208578851634791484160e11b81526001600160a01b038089169282019283528616602083015260408201939093528391839182908490829060600103925af180156101fe576101e2575b50508116937f45892a46e6cef329bb642da6d69846d324db43d19008edc141ed82382eda1bee9260209291866101d2576101c4888080808a8888165af16101be610b0d565b50610b58565b519485521692a36001805580f35b6101dd868389610da3565b6101c4565b6101ee90939293610abc565b6101fa57908538610179565b8580fd5b87513d84823e3d90fd5b8380fd5b8280fd5b50903461020c578060031936011261020c5761024a91356102456001610234610a25565b938387528660205286200154610c67565b610d0b565b5080f35b50503461029157602036600319011261029157610269610a0f565b610271610bb3565b6001600160a01b0316825260036020528120805460ff1916600117905580f35b5080fd5b50903461020c57608036600319011261020c576102b0610a0f565b906102b9610a25565b6001600160a01b036064358181169590946044359493909187870361048b576102e0610d80565b7f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16806000526000602052856000203360005260205260ff8660002054161561046e575061032e861515610a70565b8715610420578890846002541661034488610ae6565b91813b15610208578751634791484160e11b81526001600160a01b038088169282019283528616602083015260408201939093528391839182908490829060600103925af18015610416576103f8575b50508216947f3a8b6140a099e6655432cc67adfc9e61517f819377ad8b3589aea0f09fdcb4bc93602093929186886103e9576103db91508a808080938d5af16101be610b0d565b519485521692a46001805580f35b6103f39189610da3565b6103db565b6104059094939294610abc565b6104125790918738610394565b8780fd5b86513d84823e3d90fd5b608490602086519162461bcd60e51b8352820152602260248201527f436f6c6c61746572616c416461707465723a207a65726f206c6971756964617460448201526137b960f11b6064820152fd5b6044925085519163e2517d3f60e01b835233908301526024820152fd5b600080fd5b50503461029157816003193601126102915751908152602090f35b505034610291578160031936011261029157602090517f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9598152f35b5050346102915760203660031901126102915760209160ff9082906001600160a01b03610511610a0f565b1681526003855220541690519015158152f35b503461020c578160031936011261020c5781602093610541610a25565b92358152808552209060018060a01b0316600052825260ff81600020541690519015158152f35b50829061057436610a3b565b91610580939193610d80565b610588610c0b565b60018060a01b0390818516948587526020936003855260ff898920541680156107e4575b15610793576105bc861515610a70565b866106e257853403610695575b836002541690813b15610691578951634791484160e11b81526001600160a01b038086169282019283529093166020820152604081018790528891839182908490829060600103925af1801561068757610652575b507ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e5693949596519485521692a36001805580f35b9561067f7ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e56959697610abc565b95949361061e565b88513d89823e3d90fd5b8880fd5b885162461bcd60e51b815290810185905260
"deployedBytecode": "0x60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816301ffc9a7146109bb575080630f3bdd5f1461097b57806316d8887a14610940578063248a9ca3146109175780632f2ff15d146108ee5780633246887d1461085c57806336568abe1461081557806356397c35146107ec5780638340f5491461056857806391d148541461052457806397eb0088146104e657806398c4f1ac146104ab578063a217fddf14610490578063a30811c814610295578063a75995e41461024e578063d547741f146102105763d9caed1203610011573461020c576100f336610a3b565b92906100fd610d80565b610105610c0b565b610110841515610a70565b6002546001600160a01b03928791841661012987610ae6565b91813b15610208578851634791484160e11b81526001600160a01b038089169282019283528616602083015260408201939093528391839182908490829060600103925af180156101fe576101e2575b50508116937f45892a46e6cef329bb642da6d69846d324db43d19008edc141ed82382eda1bee9260209291866101d2576101c4888080808a8888165af16101be610b0d565b50610b58565b519485521692a36001805580f35b6101dd868389610da3565b6101c4565b6101ee90939293610abc565b6101fa57908538610179565b8580fd5b87513d84823e3d90fd5b8380fd5b8280fd5b50903461020c578060031936011261020c5761024a91356102456001610234610a25565b938387528660205286200154610c67565b610d0b565b5080f35b50503461029157602036600319011261029157610269610a0f565b610271610bb3565b6001600160a01b0316825260036020528120805460ff1916600117905580f35b5080fd5b50903461020c57608036600319011261020c576102b0610a0f565b906102b9610a25565b6001600160a01b036064358181169590946044359493909187870361048b576102e0610d80565b7f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16806000526000602052856000203360005260205260ff8660002054161561046e575061032e861515610a70565b8715610420578890846002541661034488610ae6565b91813b15610208578751634791484160e11b81526001600160a01b038088169282019283528616602083015260408201939093528391839182908490829060600103925af18015610416576103f8575b50508216947f3a8b6140a099e6655432cc67adfc9e61517f819377ad8b3589aea0f09fdcb4bc93602093929186886103e9576103db91508a808080938d5af16101be610b0d565b519485521692a46001805580f35b6103f39189610da3565b6103db565b6104059094939294610abc565b6104125790918738610394565b8780fd5b86513d84823e3d90fd5b608490602086519162461bcd60e51b8352820152602260248201527f436f6c6c61746572616c416461707465723a207a65726f206c6971756964617460448201526137b960f11b6064820152fd5b6044925085519163e2517d3f60e01b835233908301526024820152fd5b600080fd5b50503461029157816003193601126102915751908152602090f35b505034610291578160031936011261029157602090517f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9598152f35b5050346102915760203660031901126102915760209160ff9082906001600160a01b03610511610a0f565b1681526003855220541690519015158152f35b503461020c578160031936011261020c5781602093610541610a25565b92358152808552209060018060a01b0316600052825260ff81600020541690519015158152f35b50829061057436610a3b565b91610580939193610d80565b610588610c0b565b60018060a01b0390818516948587526020936003855260ff898920541680156107e4575b15610793576105bc861515610a70565b866106e257853403610695575b836002541690813b15610691578951634791484160e11b81526001600160a01b038086169282019283529093166020820152604081018790528891839182908490829060600103925af1801561068757610652575b507ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e5693949596519485521692a36001805580f35b9561067f7ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e56959697610abc565b95949361061e565b88513d89823e3d90fd5b8880fd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a2076616c7565206d69736d6174636044820152600d60fb1b6064820152608490fd5b346107465788516323b872dd60e01b868201523360248201523060448201526064808201889052815260a0810167ffffffffffffffff811182821017610733578a5261072e9088610df5565b6105c9565b634e487b7160e01b8a526041835260248afd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a20756e65787065637465642045546044820152600960fb1b6064820152608490fd5b885162461bcd60e51b8152908101859052602560248201527f436f6c6c61746572616c416461707465723a206173736574206e6f74206170706044820152641c9bdd995960da1b6064820152608490fd5b5086156105ac565b505034610291
"linkReferences": {},
"deployedLinkReferences": {}
}