Files
2026-03-02 12:14:09 -08:00

552 lines
27 KiB
JSON

{
"_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": "0x60803461008f57601f61106238819003918201601f19168301916001600160401b0383118484101761009457808492604094855283398101031261008f5761005f610055602061004e846100aa565b93016100aa565b91600180556100be565b50600280546001600160a01b0319166001600160a01b0392909216919091179055604051610f13908161014f8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361008f57565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1661014a57818052816020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b509056fe60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816301ffc9a7146109bb575080630f3bdd5f1461097b57806316d8887a14610940578063248a9ca3146109175780632f2ff15d146108ee5780633246887d1461085c57806336568abe1461081557806356397c35146107ec5780638340f5491461056857806391d148541461052457806397eb0088146104e657806398c4f1ac146104ab578063a217fddf14610490578063a30811c814610295578063a75995e41461024e578063d547741f146102105763d9caed1203610011573461020c576100f336610a3b565b92906100fd610d80565b610105610c0b565b610110841515610a70565b6002546001600160a01b03928791841661012987610ae6565b91813b15610208578851634791484160e11b81526001600160a01b038089169282019283528616602083015260408201939093528391839182908490829060600103925af180156101fe576101e2575b50508116937f45892a46e6cef329bb642da6d69846d324db43d19008edc141ed82382eda1bee9260209291866101d2576101c4888080808a8888165af16101be610b0d565b50610b58565b519485521692a36001805580f35b6101dd868389610da3565b6101c4565b6101ee90939293610abc565b6101fa57908538610179565b8580fd5b87513d84823e3d90fd5b8380fd5b8280fd5b50903461020c578060031936011261020c5761024a91356102456001610234610a25565b938387528660205286200154610c67565b610d0b565b5080f35b50503461029157602036600319011261029157610269610a0f565b610271610bb3565b6001600160a01b0316825260036020528120805460ff1916600117905580f35b5080fd5b50903461020c57608036600319011261020c576102b0610a0f565b906102b9610a25565b6001600160a01b036064358181169590946044359493909187870361048b576102e0610d80565b7f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16806000526000602052856000203360005260205260ff8660002054161561046e575061032e861515610a70565b8715610420578890846002541661034488610ae6565b91813b15610208578751634791484160e11b81526001600160a01b038088169282019283528616602083015260408201939093528391839182908490829060600103925af18015610416576103f8575b50508216947f3a8b6140a099e6655432cc67adfc9e61517f819377ad8b3589aea0f09fdcb4bc93602093929186886103e9576103db91508a808080938d5af16101be610b0d565b519485521692a46001805580f35b6103f39189610da3565b6103db565b6104059094939294610abc565b6104125790918738610394565b8780fd5b86513d84823e3d90fd5b608490602086519162461bcd60e51b8352820152602260248201527f436f6c6c61746572616c416461707465723a207a65726f206c6971756964617460448201526137b960f11b6064820152fd5b6044925085519163e2517d3f60e01b835233908301526024820152fd5b600080fd5b50503461029157816003193601126102915751908152602090f35b505034610291578160031936011261029157602090517f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9598152f35b5050346102915760203660031901126102915760209160ff9082906001600160a01b03610511610a0f565b1681526003855220541690519015158152f35b503461020c578160031936011261020c5781602093610541610a25565b92358152808552209060018060a01b0316600052825260ff81600020541690519015158152f35b50829061057436610a3b565b91610580939193610d80565b610588610c0b565b60018060a01b0390818516948587526020936003855260ff898920541680156107e4575b15610793576105bc861515610a70565b866106e257853403610695575b836002541690813b15610691578951634791484160e11b81526001600160a01b038086169282019283529093166020820152604081018790528891839182908490829060600103925af1801561068757610652575b507ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e5693949596519485521692a36001805580f35b9561067f7ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e56959697610abc565b95949361061e565b88513d89823e3d90fd5b8880fd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a2076616c7565206d69736d6174636044820152600d60fb1b6064820152608490fd5b346107465788516323b872dd60e01b868201523360248201523060448201526064808201889052815260a0810167ffffffffffffffff811182821017610733578a5261072e9088610df5565b6105c9565b634e487b7160e01b8a526041835260248afd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a20756e65787065637465642045546044820152600960fb1b6064820152608490fd5b885162461bcd60e51b8152908101859052602560248201527f436f6c6c61746572616c416461707465723a206173736574206e6f74206170706044820152641c9bdd995960da1b6064820152608490fd5b5086156105ac565b50503461029157816003193601126102915760025490516001600160a01b039091168152602090f35b50919034610291578060031936011261029157610830610a25565b90336001600160a01b0383160361084d575061024a919235610d0b565b5163334bd91960e11b81528390fd5b503461020c57602036600319011261020c57610876610a0f565b61087e610bb3565b6001600160a01b03169182156108ab5750506bffffffffffffffffffffffff60a01b600254161760025580f35b906020606492519162461bcd60e51b8352820152601f60248201527f436f6c6c61746572616c416461707465723a207a65726f2061646472657373006044820152fd5b50903461020c578060031936011261020c5761024a91356109126001610234610a25565b610c8d565b503461020c57602036600319011261020c57816020936001923581528085522001549051908152f35b505034610291578160031936011261029157602090517f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c168152f35b50503461029157602036600319011261029157610996610a0f565b61099e610bb3565b6001600160a01b0316825260036020528120805460ff1916905580f35b9250503461020c57602036600319011261020c573563ffffffff60e01b811680910361020c5760209250637965db0b60e01b81149081156109fe575b5015158152f35b6301ffc9a760e01b149050386109f7565b600435906001600160a01b038216820361048b57565b602435906001600160a01b038216820361048b57565b606090600319011261048b576001600160a01b0390600435828116810361048b5791602435908116810361048b579060443590565b15610a7757565b60405162461bcd60e51b815260206004820152601e60248201527f436f6c6c61746572616c416461707465723a207a65726f20616d6f756e7400006044820152606490fd5b67ffffffffffffffff8111610ad057604052565b634e487b7160e01b600052604160045260246000fd5b600160ff1b8114610af75760000390565b634e487b7160e01b600052601160045260246000fd5b3d15610b535767ffffffffffffffff903d828111610ad05760405192601f8201601f19908116603f0116840190811184821017610ad05760405282523d6000602084013e565b606090565b15610b5f57565b60405162461bcd60e51b815260206004820152602660248201527f436f6c6c61746572616c416461707465723a20455448207472616e736665722060448201526519985a5b195960d21b6064820152608490fd5b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff1615610bed5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f57c45785f0bfdd0436a24ca59ce8cf4a246623230045d7db55b0ff1db74c582260205260409020547f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9599060ff1615610bed5750565b80600052600060205260406000203360005260205260ff6040600020541615610bed5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610d0657808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610d065780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414610d91576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff831182841017610ad057610df392604052610df5565b565b60018060a01b031690610e1f600080836020829551910182875af1610e18610b0d565b9084610e7a565b908151918215159283610e4f575b505050610e375750565b60249060405190635274afe760e01b82526004820152fd5b819293509060209181010312610291576020015190811591821503610e775750388080610e2d565b80fd5b90610ea15750805115610e8f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610ed4575b610eb2575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15610eaa56fea264697066735822122040d62477ec171b1b4965e14e0116ecb3f738609362e56a37d1b150b3852f3ba364736f6c63430008160033",
"deployedBytecode": "0x60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816301ffc9a7146109bb575080630f3bdd5f1461097b57806316d8887a14610940578063248a9ca3146109175780632f2ff15d146108ee5780633246887d1461085c57806336568abe1461081557806356397c35146107ec5780638340f5491461056857806391d148541461052457806397eb0088146104e657806398c4f1ac146104ab578063a217fddf14610490578063a30811c814610295578063a75995e41461024e578063d547741f146102105763d9caed1203610011573461020c576100f336610a3b565b92906100fd610d80565b610105610c0b565b610110841515610a70565b6002546001600160a01b03928791841661012987610ae6565b91813b15610208578851634791484160e11b81526001600160a01b038089169282019283528616602083015260408201939093528391839182908490829060600103925af180156101fe576101e2575b50508116937f45892a46e6cef329bb642da6d69846d324db43d19008edc141ed82382eda1bee9260209291866101d2576101c4888080808a8888165af16101be610b0d565b50610b58565b519485521692a36001805580f35b6101dd868389610da3565b6101c4565b6101ee90939293610abc565b6101fa57908538610179565b8580fd5b87513d84823e3d90fd5b8380fd5b8280fd5b50903461020c578060031936011261020c5761024a91356102456001610234610a25565b938387528660205286200154610c67565b610d0b565b5080f35b50503461029157602036600319011261029157610269610a0f565b610271610bb3565b6001600160a01b0316825260036020528120805460ff1916600117905580f35b5080fd5b50903461020c57608036600319011261020c576102b0610a0f565b906102b9610a25565b6001600160a01b036064358181169590946044359493909187870361048b576102e0610d80565b7f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16806000526000602052856000203360005260205260ff8660002054161561046e575061032e861515610a70565b8715610420578890846002541661034488610ae6565b91813b15610208578751634791484160e11b81526001600160a01b038088169282019283528616602083015260408201939093528391839182908490829060600103925af18015610416576103f8575b50508216947f3a8b6140a099e6655432cc67adfc9e61517f819377ad8b3589aea0f09fdcb4bc93602093929186886103e9576103db91508a808080938d5af16101be610b0d565b519485521692a46001805580f35b6103f39189610da3565b6103db565b6104059094939294610abc565b6104125790918738610394565b8780fd5b86513d84823e3d90fd5b608490602086519162461bcd60e51b8352820152602260248201527f436f6c6c61746572616c416461707465723a207a65726f206c6971756964617460448201526137b960f11b6064820152fd5b6044925085519163e2517d3f60e01b835233908301526024820152fd5b600080fd5b50503461029157816003193601126102915751908152602090f35b505034610291578160031936011261029157602090517f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9598152f35b5050346102915760203660031901126102915760209160ff9082906001600160a01b03610511610a0f565b1681526003855220541690519015158152f35b503461020c578160031936011261020c5781602093610541610a25565b92358152808552209060018060a01b0316600052825260ff81600020541690519015158152f35b50829061057436610a3b565b91610580939193610d80565b610588610c0b565b60018060a01b0390818516948587526020936003855260ff898920541680156107e4575b15610793576105bc861515610a70565b866106e257853403610695575b836002541690813b15610691578951634791484160e11b81526001600160a01b038086169282019283529093166020820152604081018790528891839182908490829060600103925af1801561068757610652575b507ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e5693949596519485521692a36001805580f35b9561067f7ff1c0dd7e9b98bbff859029005ef89b127af049cd18df1a8d79f0b7e019911e56959697610abc565b95949361061e565b88513d89823e3d90fd5b8880fd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a2076616c7565206d69736d6174636044820152600d60fb1b6064820152608490fd5b346107465788516323b872dd60e01b868201523360248201523060448201526064808201889052815260a0810167ffffffffffffffff811182821017610733578a5261072e9088610df5565b6105c9565b634e487b7160e01b8a526041835260248afd5b885162461bcd60e51b8152908101859052602160248201527f436f6c6c61746572616c416461707465723a20756e65787065637465642045546044820152600960fb1b6064820152608490fd5b885162461bcd60e51b8152908101859052602560248201527f436f6c6c61746572616c416461707465723a206173736574206e6f74206170706044820152641c9bdd995960da1b6064820152608490fd5b5086156105ac565b50503461029157816003193601126102915760025490516001600160a01b039091168152602090f35b50919034610291578060031936011261029157610830610a25565b90336001600160a01b0383160361084d575061024a919235610d0b565b5163334bd91960e11b81528390fd5b503461020c57602036600319011261020c57610876610a0f565b61087e610bb3565b6001600160a01b03169182156108ab5750506bffffffffffffffffffffffff60a01b600254161760025580f35b906020606492519162461bcd60e51b8352820152601f60248201527f436f6c6c61746572616c416461707465723a207a65726f2061646472657373006044820152fd5b50903461020c578060031936011261020c5761024a91356109126001610234610a25565b610c8d565b503461020c57602036600319011261020c57816020936001923581528085522001549051908152f35b505034610291578160031936011261029157602090517f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c168152f35b50503461029157602036600319011261029157610996610a0f565b61099e610bb3565b6001600160a01b0316825260036020528120805460ff1916905580f35b9250503461020c57602036600319011261020c573563ffffffff60e01b811680910361020c5760209250637965db0b60e01b81149081156109fe575b5015158152f35b6301ffc9a760e01b149050386109f7565b600435906001600160a01b038216820361048b57565b602435906001600160a01b038216820361048b57565b606090600319011261048b576001600160a01b0390600435828116810361048b5791602435908116810361048b579060443590565b15610a7757565b60405162461bcd60e51b815260206004820152601e60248201527f436f6c6c61746572616c416461707465723a207a65726f20616d6f756e7400006044820152606490fd5b67ffffffffffffffff8111610ad057604052565b634e487b7160e01b600052604160045260246000fd5b600160ff1b8114610af75760000390565b634e487b7160e01b600052601160045260246000fd5b3d15610b535767ffffffffffffffff903d828111610ad05760405192601f8201601f19908116603f0116840190811184821017610ad05760405282523d6000602084013e565b606090565b15610b5f57565b60405162461bcd60e51b815260206004820152602660248201527f436f6c6c61746572616c416461707465723a20455448207472616e736665722060448201526519985a5b195960d21b6064820152608490fd5b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff1615610bed5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f57c45785f0bfdd0436a24ca59ce8cf4a246623230045d7db55b0ff1db74c582260205260409020547f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9599060ff1615610bed5750565b80600052600060205260406000203360005260205260ff6040600020541615610bed5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610d0657808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610d065780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414610d91576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff831182841017610ad057610df392604052610df5565b565b60018060a01b031690610e1f600080836020829551910182875af1610e18610b0d565b9084610e7a565b908151918215159283610e4f575b505050610e375750565b60249060405190635274afe760e01b82526004820152fd5b819293509060209181010312610291576020015190811591821503610e775750388080610e2d565b80fd5b90610ea15750805115610e8f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610ed4575b610eb2575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15610eaa56fea264697066735822122040d62477ec171b1b4965e14e0116ecb3f738609362e56a37d1b150b3852f3ba364736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}