Files
smom-dbis-138/artifacts/contracts/bridge/trustless/InboxETH.sol/InboxETH.json
2026-03-02 12:14:09 -08:00

631 lines
44 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "InboxETH",
"sourceName": "contracts/bridge/trustless/InboxETH.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_bondManager",
"type": "address"
},
{
"internalType": "address",
"name": "_challengeManager",
"type": "address"
},
{
"internalType": "address",
"name": "_liquidityPool",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ClaimAlreadyExists",
"type": "error"
},
{
"inputs": [],
"name": "CooldownActive",
"type": "error"
},
{
"inputs": [],
"name": "DepositTooSmall",
"type": "error"
},
{
"inputs": [],
"name": "InsufficientBond",
"type": "error"
},
{
"inputs": [],
"name": "RateLimitExceeded",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [],
"name": "RelayerFeeNotEnabled",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAmount",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAsset",
"type": "error"
},
{
"inputs": [],
"name": "ZeroDepositId",
"type": "error"
},
{
"inputs": [],
"name": "ZeroRecipient",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bondAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "challengeWindowEnd",
"type": "uint256"
}
],
"name": "ClaimSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "RelayerFeeClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newFeeBps",
"type": "uint256"
}
],
"name": "RelayerFeeSet",
"type": "event"
},
{
"inputs": [],
"name": "COOLDOWN_PERIOD",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MAX_CLAIMS_PER_HOUR",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MIN_DEPOSIT",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "bondManager",
"outputs": [
{
"internalType": "contract BondManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "challengeManager",
"outputs": [
{
"internalType": "contract ChallengeManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
}
],
"name": "claimRelayerFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "claims",
"outputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "exists",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "claimsPerHour",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
}
],
"name": "getClaim",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "exists",
"type": "bool"
}
],
"internalType": "struct InboxETH.ClaimData",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
}
],
"name": "getClaimStatus",
"outputs": [
{
"internalType": "bool",
"name": "exists",
"type": "bool"
},
{
"internalType": "bool",
"name": "finalized",
"type": "bool"
},
{
"internalType": "bool",
"name": "challenged",
"type": "bool"
},
{
"internalType": "uint256",
"name": "challengeWindowEnd",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
}
],
"name": "getRelayerFee",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "claimed",
"type": "bool"
}
],
"internalType": "struct InboxETH.RelayerFee",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "hourStart",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "lastClaimTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "liquidityPool",
"outputs": [
{
"internalType": "contract LiquidityPoolETH",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "relayerFeeBps",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "relayerFees",
"outputs": [
{
"internalType": "address",
"name": "relayer",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "claimed",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_relayerFeeBps",
"type": "uint256"
}
],
"name": "setRelayerFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "depositId",
"type": "uint256"
},
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "bytes",
"name": "proof",
"type": "bytes"
}
],
"name": "submitClaim",
"outputs": [
{
"internalType": "uint256",
"name": "bondAmount",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "depositIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "bytes[]",
"name": "proofs",
"type": "bytes[]"
}
],
"name": "submitClaimsBatch",
"outputs": [
{
"internalType": "uint256",
"name": "totalBondAmount",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60e034620001fe57601f62001f8138819003918201601f191683019291906001600160401b0384118385101762000203578160609284926040968752833981010312620001fe57620000518162000219565b6200006c83620000646020850162000219565b930162000219565b600160009081556004556001600160a01b03918216929091908315620001ba578116918215620001775716918215620001335760805260a05260c05251611d5290816200022f8239608051818181610334015281816103b901528181610a44015281816110f20152818161117501526115e6015260a051818181610437015281816104a3015281816111cf015281816116920152818161191601528181611b1f0152611c9d015260c0518181816105000152818161055301528181610e9e015261125e0152f35b835162461bcd60e51b815260206004820152601d60248201527f496e626f784554483a207a65726f206c697175696469747920706f6f6c0000006044820152606490fd5b6064855162461bcd60e51b815260206004820152602060248201527f496e626f784554483a207a65726f206368616c6c656e6765206d616e616765726044820152fd5b845162461bcd60e51b815260206004820152601b60248201527f496e626f784554483a207a65726f20626f6e64206d616e6167657200000000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001fe5756fe608080604052600436101561001357600080fd5b60009060e08235811c918263023a96fe146119025750816313eddabf146118c95781631fa22f6914611615578163363cc427146115d057816336dbd2f9146115935781634a39f39a14610fbe5781635aef244714610ecd578163665a11ca14610e885781636e99d52f14610e6c578163789dc1dd14610e505781638218ca2214610e0157816383302a6f14610d735781638a691f1914610cec57816393c79ba614610cce578163a888c2cd14610c5057508063b77cf9c614610c17578063cd873d3e14610151578063e1e158a51461012f5763ff795208146100f457600080fd5b3461012c57602036600319011261012c576020906040906001600160a01b0361011b611945565b168152600283522054604051908152f35b80fd5b503461012c578060031936011261012c57602060405166038d7ea4c680008152f35b5060a036600319011261012c5767ffffffffffffffff600435818111610c135761017f90369060040161195b565b9091602435818111610c0f5761019990369060040161195b565b9190604435828111610c0b576101b390369060040161195b565b939091606435848111610c07576101ce90369060040161195b565b919094608435908111610c03576101e990369060040161195b565b9890506101f4611c5d565b89988815610bc65760148911610b81578489149081610b77575b81610b6d575b81610b63575b5015610b1e57898a5b8981106109ac5750341061099a57895b8881106102da578a8a8a3383526001602052426040842055600260205261025f60408420918254611bb1565b9055803411610277575b600160209255604051908152f35b818080806102858534611be7565b335af1610290611aa7565b506102695760405162461bcd60e51b815260206004820152601760248201527f496e626f784554483a20726566756e64206661696c65640000000000000000006044820152606490fd5b808b81156108ea575b60649160406102fb9233815260026020522054611bb1565b10156108d8578a61030d828a89611c23565b359a60045480610829575b5060405162d9adcd60e61b8152600481018d90526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561081e578c85918f95936107e1575b50916103836103b5959260209489611c23565b6040516310fa23d360e01b81529035600482015260248101929092523360448301529093849190829081906064820190565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156107d6578d9261079b575b50816103fc91611bb1565b9a8c610409848d87611c23565b35878b86610418818d8c611c23565b61042190611c49565b9261042b92611c23565b61043490611c49565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610797576040516328d6acfd60e21b815260048101939093526001600160a01b03908116602484015260448301859052166064820152818180608481010381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561076c57610783575b506001600160a01b0390506104f66104f1858a89611c23565b611c49565b1661077b578c805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610777578161054e91604051809381926359d1938f60e01b83528760048401611bf4565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561076c57610754575b5083908c888c848c61059b82868d611c23565b35966105a7918d611c23565b6105b090611c49565b926105ba92611c23565b6105c390611c49565b604051946105d0866119d2565b85526020850191600160a01b6001900316825260408501918683526060860191600160a01b60019003168252608086019133835260a087019342855260c08801958c8c600192838a5261062292611c23565b35885260066020819052604090982098518955925192880180546001600160a01b039485166001600160a01b0319918216179091559051600289015590516003880180549184169183169190911790559151600487018054919092169216919091179055516005840155519101805460ff191691151560ff169190911790556106ac838c86611c23565b356106b690611c80565b506106c2848d87611c23565b35906106cf858a89611c23565b6106d890611c49565b936001600160a01b036106ec878b8f611c23565b6106f590611c49565b16946040519283923396610728938590949392606092608083019660018060a01b03168352602083015260408201520152565b037f9ac20ca8c2c93667ee0e58f3d89a360ff25a2a5611fcd2dbedfc706080d953f891a4600101610233565b61075d906119be565b610768578c38610588565b8c80fd5b6040513d84823e3d90fd5b5080fd5b8c60016104fe565b61078c906119be565b610768578c386104d8565b8380fd5b9091506020813d6020116107ce575b816107b7602093836119ee565b810103126107c95751906103fc6103f1565b600080fd5b3d91506107aa565b6040513d8f823e3d90fd5b94505050506020823d602011610816575b816107ff602093836119ee565b810103126107c95790518b9190838c610383610370565b3d91506107f2565b6040513d85823e3d90fd5b909b50610837838b8a611c23565b359061084291611bd4565b61271090049a8b610854848c8b611c23565b359061085f91611be7565b9b6040519061086d8261198c565b33825260208201908152604082018481529061088a868f89611c23565b358552600560205260408520925183546001600160a01b039091166001600160a01b0319909116178355516001830155516002909101805460ff191691151560ff1691909117905538610318565b60405163a74c1c5f60e01b8152600490fd5b506108fe66038d7ea4c68000918a89611c23565b351061098857338b52600160205260408b2054603c81018091116109745742106109625760646102fb8260408e610e104204338252600360205282822081815403610950575b505092505091506102e3565b55600260205280828120553880610944565b60405163aa9a98df60e01b8152600490fd5b634e487b7160e01b8c52601160045260248cfd5b604051636ba4a1c760e01b8152600490fd5b60405163e92c469f60e01b8152600490fd5b906109b8828b85611c23565b3515610b0c576001600160a01b036109d46104f1848988611c23565b161580610af9575b610ae7576001600160a01b036109f66104f184888c611c23565b1615610ad557610a07828b85611c23565b358c5260ff8c60406006918260205220015416610ac357610a29828a89611c23565b60405162d9adcd60e61b8152903560048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156107d6578d91610a90575b50610a8990600192611bb1565b9101610223565b90506020813d602011610abb575b81610aab602093836119ee565b810103126107c957516001610a7c565b3d9150610a9e565b6040516380497e3b60e01b8152600490fd5b60405163d27b444360e01b8152600490fd5b604051631f2a200560e01b8152600490fd5b50610b05828a89611c23565b35156109dc565b60405163144584ed60e11b8152600490fd5b60405162461bcd60e51b815260206004820152601960248201527f496e626f784554483a206c656e677468206d69736d61746368000000000000006044820152606490fd5b905088143861021a565b8985149150610214565b898914915061020e565b60405162461bcd60e51b815260206004820152601960248201527f496e626f784554483a20626174636820746f6f206c61726765000000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526015602482015274496e626f784554483a20656d70747920617272617960581b6044820152606490fd5b8980fd5b8880fd5b8680fd5b8480fd5b8280fd5b503461012c57602036600319011261012c576020906040906001600160a01b03610c3f611945565b168152600183522054604051908152f35b823461012c57602036600319011261012c57604090600435815260066020522080549060018060a01b0390816001820154169160028201549080600384015416906004840154169160ff600660058601549501541694604051968752602087015260408601526060850152608084015260a0830152151560c0820152f35b823461012c578060031936011261012c576020600454604051908152f35b823461012c57602036600319011261012c57604081606092828051610d108161198c565b82815282602082015201526004358152600560205220604051610d328161198c565b60018060a01b0382541691828252604060ff600260018401549360208601948552015416920191151582526040519283525160208301525115156040820152f35b823461012c57602036600319011261012c576004356103e88111610dc3576020817f42fdbcbc8ba10933bbfcce88dc7cdce251b9a896b3304ba19744b7da06fd907992600455604051908152a180f35b60405162461bcd60e51b8152602060048201526016602482015275092dcc4def08aa8907440cccaca40e8dede40d0d2ced60531b6044820152606490fd5b823461012c57602036600319011261012c576040606091600435815260056020522060018060a01b038154169060ff600260018301549201541690604051928352602083015215156040820152f35b823461012c578060031936011261012c57602060405160648152f35b823461012c578060031936011261012c576020604051603c8152f35b823461012c578060031936011261012c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b823461012c57602036600319011261012c578060409160c08351610ef0816119d2565b82815282602082015282858201528260608201528260808201528260a082015201526004358152600660205220604051610f29816119d2565b81549182825260018060a01b038060018301541660208401908152816002840154604086019081528160038601541690606087019182528280600488015416946080890195865260c060ff600660058b01549a60a08d019b8c5201541699019815158952604051998a525116602089015251604088015251166060860152511660808401525160a083015251151560c0820152f35b8260a036600319011261012c576024356001600160a01b038116900361012c576044356064356001600160a01b03811690036107775760843567ffffffffffffffff8082116107975736602383011215610797578160040135908111610797573691016024011161077757611031611c5d565b60043515610b0c576024356001600160a01b03161590818061158b575b610ae7576064356001600160a01b031615610ad55766038d7ea4c6800081106109885733835260016020526040832054603c810180911161157757421061096257610e10420433845260036020526040842081815403611564575b505060026020526064604084205410156108d8576004358352600660205260ff600660408520015416610ac35760405162d9adcd60e61b815260048101829052916020836024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315611425578493611530575b50816004548061149e575b505082341061099a576040516310fa23d360e01b815260048035908201526024810183905233604482015292602090849060649082906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561142557849361146a575b503384526001602052426040852055600260205260408420805460001981146114565760010190557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610c0f576040516328d6acfd60e21b815260048035908201526001600160a01b03602480358216908301526044820185905260648035919091169082015290859082908183816084810103925af1801561144b57611438575b50156114305782805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610c135782916112b1916040519485809481936359d1938f60e01b83528960048401611bf4565b03925af1801561142557611411575b5060209260019161139f6040516112d6816119d2565b60043581526006878201868060a01b0360243516815260408301908582526060840190888060a01b03606435168252608085019033825260a086019242845260c08701948b86526004358b52868e5260408b20975188558b8801928c8060a01b03905116926bffffffffffffffffffffffff60a01b938482541617905551600288015560038701908b8060a01b039051168282541617905560048601918a8060a01b039051169082541617905551600584015551151591019060ff801983541691151516179055565b6113aa600435611c80565b50604080516024356001600160a01b0316815260208101939093528201859052606082015260a083901b83900360643516903390600435907f9ac20ca8c2c93667ee0e58f3d89a360ff25a2a5611fcd2dbedfc706080d953f890608090a455604051908152f35b61141b84916119be565b610c1357836112c0565b6040513d86823e3d90fd5b82600161125c565b611444909491946119be565b9284611253565b6040513d87823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9092506020813d602011611496575b81611486602093836119ee565b81010312610797575191846111a5565b3d9150611479565b8193506127106114b46114bc9261152994611bd4565b048094611be7565b926002604051916114cc8361198c565b33835260208301908152604083019088825260043589526005602052604089209360018060a01b039051166bffffffffffffffffffffffff60a01b85541617845551600184015551151591019060ff801983541691151516179055565b8480611135565b9092506020813d60201161155c575b8161154c602093836119ee565b810103126107975751918461112a565b3d915061153f565b55600260205282604081205583806110a9565b634e487b7160e01b84526011600452602484fd5b50801561104e565b823461012c57602036600319011261012c5760806115b2600435611ae7565b91604051931515845215156020840152151560408301526060820152f35b823461012c578060031936011261012c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346107775760209081600319360112610c135760043590611636611c5d565b600454156118b7578184526005835260408420805490916001600160a01b0391821690811561187257600284019283549260ff841661182d5733036117e8578160249160405192838092635aef244760e01b82528a60048301527f0000000000000000000000000000000000000000000000000000000000000000165afa9081156117dd5760a09289926117b0575b505001511561176b5790600180939260ff191617905501838080808454335af16116ed611aa7565b5015611726575460405190815233927fc9bc6b53a64758d63c63f0038c261ff3585a9b9e38a9ca8cead7629d6093b5bb91a36001815580f35b60405162461bcd60e51b815260048101849052601d60248201527f496e626f784554483a20666565207472616e73666572206661696c65640000006044820152606490fd5b60405162461bcd60e51b815260048101869052601d60248201527f496e626f784554483a20636c61696d206e6f742066696e616c697a65640000006044820152606490fd5b6117cf9250803d106117d6575b6117c781836119ee565b810190611a31565b38806116c5565b503d6117bd565b6040513d8a823e3d90fd5b60405162461bcd60e51b815260048101889052601b60248201527f496e626f784554483a206e6f742066656520726563697069656e7400000000006044820152606490fd5b60405162461bcd60e51b815260048101899052601d60248201527f496e626f784554483a2066656520616c726561647920636c61696d65640000006044820152606490fd5b60405162461bcd60e51b815260048101879052601c60248201527f496e626f784554483a206e6f2066656520666f72206465706f736974000000006044820152606490fd5b6040516304a93aad60e51b8152600490fd5b823461012c57602036600319011261012c576020906040906001600160a01b036118f1611945565b168152600383522054604051908152f35b8390346107775781600319360112610777577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b03821682036107c957565b9181601f840112156107c95782359167ffffffffffffffff83116107c9576020808501948460051b0101116107c957565b6060810190811067ffffffffffffffff8211176119a857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116119a857604052565b60e0810190811067ffffffffffffffff8211176119a857604052565b90601f8019910116810190811067ffffffffffffffff8211176119a857604052565b51906001600160a01b03821682036107c957565b519081151582036107c957565b908160e09103126107c957611a9f60c060405192611a4e846119d2565b80518452611a5e60208201611a10565b6020850152611a6f60408201611a10565b60408501526060810151606085015260808101516080850152611a9460a08201611a24565b60a085015201611a24565b60c082015290565b3d15611ae2573d9067ffffffffffffffff82116119a85760405191611ad6601f8201601f1916602001846119ee565b82523d6000602084013e565b606090565b90600091808352600660205260ff60066040852001541615611ba957604051635aef244760e01b81526004810182905260e0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415611b9d5793611b78575b50611b6090611c80565b5060c060a08401511515930151151591600193929190565b611b60919350611b969060e03d60e0116117d6576117c781836119ee565b9290611b56565b604051903d90823e3d90fd5b508180918190565b91908201809211611bbe57565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611bbe57565b91908203918211611bbe57565b908152604081019291906002821015611c0d5760200152565b634e487b7160e01b600052602160045260246000fd5b9190811015611c335760051b0190565b634e487b7160e01b600052603260045260246000fd5b356001600160a01b03811681036107c95790565b600260005414611c6e576002600055565b604051633ee5aeb560e01b8152600490fd5b604051635aef244760e01b8152600481019190915260e0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611d1057600091611cf1575b50805115611ce8576080015190600190565b50600090600090565b611d0a915060e03d60e0116117d6576117c781836119ee565b38611cd6565b6040513d6000823e3d90fdfea2646970667358221220d3c8edc44bceb074cf27eede978d92d56c41a1bf01b0c5f201d26389d30f634764736f6c63430008160033",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60009060e08235811c918263023a96fe146119025750816313eddabf146118c95781631fa22f6914611615578163363cc427146115d057816336dbd2f9146115935781634a39f39a14610fbe5781635aef244714610ecd578163665a11ca14610e885781636e99d52f14610e6c578163789dc1dd14610e505781638218ca2214610e0157816383302a6f14610d735781638a691f1914610cec57816393c79ba614610cce578163a888c2cd14610c5057508063b77cf9c614610c17578063cd873d3e14610151578063e1e158a51461012f5763ff795208146100f457600080fd5b3461012c57602036600319011261012c576020906040906001600160a01b0361011b611945565b168152600283522054604051908152f35b80fd5b503461012c578060031936011261012c57602060405166038d7ea4c680008152f35b5060a036600319011261012c5767ffffffffffffffff600435818111610c135761017f90369060040161195b565b9091602435818111610c0f5761019990369060040161195b565b9190604435828111610c0b576101b390369060040161195b565b939091606435848111610c07576101ce90369060040161195b565b919094608435908111610c03576101e990369060040161195b565b9890506101f4611c5d565b89988815610bc65760148911610b81578489149081610b77575b81610b6d575b81610b63575b5015610b1e57898a5b8981106109ac5750341061099a57895b8881106102da578a8a8a3383526001602052426040842055600260205261025f60408420918254611bb1565b9055803411610277575b600160209255604051908152f35b818080806102858534611be7565b335af1610290611aa7565b506102695760405162461bcd60e51b815260206004820152601760248201527f496e626f784554483a20726566756e64206661696c65640000000000000000006044820152606490fd5b808b81156108ea575b60649160406102fb9233815260026020522054611bb1565b10156108d8578a61030d828a89611c23565b359a60045480610829575b5060405162d9adcd60e61b8152600481018d90526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561081e578c85918f95936107e1575b50916103836103b5959260209489611c23565b6040516310fa23d360e01b81529035600482015260248101929092523360448301529093849190829081906064820190565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156107d6578d9261079b575b50816103fc91611bb1565b9a8c610409848d87611c23565b35878b86610418818d8c611c23565b61042190611c49565b9261042b92611c23565b61043490611c49565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610797576040516328d6acfd60e21b815260048101939093526001600160a01b03908116602484015260448301859052166064820152818180608481010381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561076c57610783575b506001600160a01b0390506104f66104f1858a89611c23565b611c49565b1661077b578c805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610777578161054e91604051809381926359d1938f60e01b83528760048401611bf4565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561076c57610754575b5083908c888c848c61059b82868d611c23565b35966105a7918d611c23565b6105b090611c49565b926105ba92611c23565b6105c390611c49565b604051946105d0866119d2565b85526020850191600160a01b6001900316825260408501918683526060860191600160a01b60019003168252608086019133835260a087019342855260c08801958c8c600192838a5261062292611c23565b35885260066020819052604090982098518955925192880180546001600160a01b039485166001600160a01b0319918216179091559051600289015590516003880180549184169183169190911790559151600487018054919092169216919091179055516005840155519101805460ff191691151560ff169190911790556106ac838c86611c23565b356106b690611c80565b506106c2848d87611c23565b35906106cf858a89611c23565b6106d890611c49565b936001600160a01b036106ec878b8f611c23565b6106f590611c49565b16946040519283923396610728938590949392606092608083019660018060a01b03168352602083015260408201520152565b037f9ac20ca8c2c93667ee0e58f3d89a360ff25a2a5611fcd2dbedfc706080d953f891a4600101610233565b61075d906119be565b610768578c38610588565b8c80fd5b6040513d84823e3d90fd5b5080fd5b8c60016104fe565b61078c906119be565b610768578c386104d8565b8380fd5b9091506020813d6020116107ce575b816107b7602093836119ee565b810103126107c95751906103fc6103f1565b600080fd5b3d91506107aa565b6040513d8f823e3d90fd5b94505050506020823d602011610816575b816107ff602093836119ee565b810103126107c95790518b9190838c610383610370565b3d91506107f2565b6040513d85823e3d90fd5b909b50610837838b8a611c23565b359061084291611bd4565b61271090049a8b610854848c8b611c23565b359061085f91611be7565b9b6040519061086d8261198c565b33825260208201908152604082018481529061088a868f89611c23565b358552600560205260408520925183546001600160a01b039091166001600160a01b0319909116178355516001830155516002909101805460ff191691151560ff1691909117905538610318565b60405163a74c1c5f60e01b8152600490fd5b506108fe66038d7ea4c68000918a89611c23565b351061098857338b52600160205260408b2054603c81018091116109745742106109625760646102fb8260408e610e104204338252600360205282822081815403610950575b505092505091506102e3565b55600260205280828120553880610944565b60405163aa9a98df60e01b8152600490fd5b634e487b7160e01b8c52601160045260248cfd5b604051636ba4a1c760e01b8152600490fd5b60405163e92c469f60e01b8152600490fd5b906109b8828b85611c23565b3515610b0c576001600160a01b036109d46104f1848988611c23565b161580610af9575b610ae7576001600160a01b036109f66104f184888c611c23565b1615610ad557610a07828b85611c23565b358c5260ff8c60406006918260205220015416610ac357610a29828a89611c23565b60405162d9adcd60e61b8152903560048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156107d6578d91610a90575b50610a8990600192611bb1565b9101610223565b90506020813d602011610abb575b81610aab602093836119ee565b810103126107c957516001610a7c565b3d9150610a9e565b6040516380497e3b60e01b8152600490fd5b60405163d27b444360e01b8152600490fd5b604051631f2a200560e01b8152600490fd5b50610b05828a89611c23565b35156109dc565b60405163144584ed60e11b8152600490fd5b60405162461bcd60e51b815260206004820152601960248201527f496e626f784554483a206c656e677468206d69736d61746368000000000000006044820152606490fd5b905088143861021a565b8985149150610214565b898914915061020e565b60405162461bcd60e51b815260206004820152601960248201527f496e626f784554483a20626174636820746f6f206c61726765000000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526015602482015274496e626f784554483a20656d70747920617272617960581b6044820152606490fd5b8980fd5b8880fd5b8680fd5b8480fd5b8280fd5b503461012c57602036600319011261012c576020906040906001600160a01b03610c3f611945565b168152600183522054604051908152f35b823461012c57602036600319011261012c57604090600435815260066020522080549060018060a01b0390816001820154169160028201549080600384015416906004840154169160ff600660058601549501541694604051968752602087015260408601526060850152608084015260a0830152151560c0820152f35b823461012c578060031936011261012c576020600454604051908152f35b823461012c57602036600319011261012c57604081606092828051610d108161198c565b82815282602082015201526004358152600560205220604051610d328161198c565b60018060a01b0382541691828252604060ff600260018401549360208601948552015416920191151582526040519283525160208301525115156040820152f35b823461012c57602036600319011261012c576004356103e88111610dc3576020817f42fdbcbc8ba10933bbfcce88dc7cdce251b9a896b3304ba19744b7da06fd907992600455604051908152a180f35b60405162461bcd60e51b8152602060048201526016602482015275092dcc4def08aa8907440cccaca40e8dede40d0d2ced60531b6044820152606490fd5b823461012c57602036600319011261012c576040606091600435815260056020522060018060a01b038154169060ff600260018301549201541690604051928352602083015215156040820152f35b823461012c578060031936011261012c57602060405160648152f35b823461012c578060031936011261012c576020604051603c8152f35b823461012c578060031936011261012c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b823461012c57602036600319011261012c578060409160c08351610ef0816119d2565b82815282602082015282858201528260608201528260808201528260a082015201526004358152600660205220604051610f29816119d2565b81549182825260018060a01b038060018301541660208401908152816002840154604086019081528160038601541690606087019182528280600488015416946080890195865260c060ff600660058b01549a60a08d019b8c5201541699019815158952604051998a525116602089015251604088015251166060860152511660808401525160a083015251151560c0820152f35b8260a036600319011261012c576024356001600160a01b038116900361012c576044356064356001600160a01b03811690036107775760843567ffffffffffffffff8082116107975736602383011215610797578160040135908111610797573691016024011161077757611031611c5d565b60043515610b0c576024356001600160a01b03161590818061158b575b610ae7576064356001600160a01b031615610ad55766038d7ea4c6800081106109885733835260016020526040832054603c810180911161157757421061096257610e10420433845260036020526040842081815403611564575b505060026020526064604084205410156108d8576004358352600660205260ff600660408520015416610ac35760405162d9adcd60e61b815260048101829052916020836024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315611425578493611530575b50816004548061149e575b505082341061099a576040516310fa23d360e01b815260048035908201526024810183905233604482015292602090849060649082906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561142557849361146a575b503384526001602052426040852055600260205260408420805460001981146114565760010190557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610c0f576040516328d6acfd60e21b815260048035908201526001600160a01b03602480358216908301526044820185905260648035919091169082015290859082908183816084810103925af1801561144b57611438575b50156114305782805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610c135782916112b1916040519485809481936359d1938f60e01b83528960048401611bf4565b03925af1801561142557611411575b5060209260019161139f6040516112d6816119d2565b60043581526006878201868060a01b0360243516815260408301908582526060840190888060a01b03606435168252608085019033825260a086019242845260c08701948b86526004358b52868e5260408b20975188558b8801928c8060a01b03905116926bffffffffffffffffffffffff60a01b938482541617905551600288015560038701908b8060a01b039051168282541617905560048601918a8060a01b039051169082541617905551600584015551151591019060ff801983541691151516179055565b6113aa600435611c80565b50604080516024356001600160a01b0316815260208101939093528201859052606082015260a083901b83900360643516903390600435907f9ac20ca8c2c93667ee0e58f3d89a360ff25a2a5611fcd2dbedfc706080d953f890608090a455604051908152f35b61141b84916119be565b610c1357836112c0565b6040513d86823e3d90fd5b82600161125c565b611444909491946119be565b9284611253565b6040513d87823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9092506020813d602011611496575b81611486602093836119ee565b81010312610797575191846111a5565b3d9150611479565b8193506127106114b46114bc9261152994611bd4565b048094611be7565b926002604051916114cc8361198c565b33835260208301908152604083019088825260043589526005602052604089209360018060a01b039051166bffffffffffffffffffffffff60a01b85541617845551600184015551151591019060ff801983541691151516179055565b8480611135565b9092506020813d60201161155c575b8161154c602093836119ee565b810103126107975751918461112a565b3d915061153f565b55600260205282604081205583806110a9565b634e487b7160e01b84526011600452602484fd5b50801561104e565b823461012c57602036600319011261012c5760806115b2600435611ae7565b91604051931515845215156020840152151560408301526060820152f35b823461012c578060031936011261012c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346107775760209081600319360112610c135760043590611636611c5d565b600454156118b7578184526005835260408420805490916001600160a01b0391821690811561187257600284019283549260ff841661182d5733036117e8578160249160405192838092635aef244760e01b82528a60048301527f0000000000000000000000000000000000000000000000000000000000000000165afa9081156117dd5760a09289926117b0575b505001511561176b5790600180939260ff191617905501838080808454335af16116ed611aa7565b5015611726575460405190815233927fc9bc6b53a64758d63c63f0038c261ff3585a9b9e38a9ca8cead7629d6093b5bb91a36001815580f35b60405162461bcd60e51b815260048101849052601d60248201527f496e626f784554483a20666565207472616e73666572206661696c65640000006044820152606490fd5b60405162461bcd60e51b815260048101869052601d60248201527f496e626f784554483a20636c61696d206e6f742066696e616c697a65640000006044820152606490fd5b6117cf9250803d106117d6575b6117c781836119ee565b810190611a31565b38806116c5565b503d6117bd565b6040513d8a823e3d90fd5b60405162461bcd60e51b815260048101889052601b60248201527f496e626f784554483a206e6f742066656520726563697069656e7400000000006044820152606490fd5b60405162461bcd60e51b815260048101899052601d60248201527f496e626f784554483a2066656520616c726561647920636c61696d65640000006044820152606490fd5b60405162461bcd60e51b815260048101879052601c60248201527f496e626f784554483a206e6f2066656520666f72206465706f736974000000006044820152606490fd5b6040516304a93aad60e51b8152600490fd5b823461012c57602036600319011261012c576020906040906001600160a01b036118f1611945565b168152600383522054604051908152f35b8390346107775781600319360112610777577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b03821682036107c957565b9181601f840112156107c95782359167ffffffffffffffff83116107c9576020808501948460051b0101116107c957565b6060810190811067ffffffffffffffff8211176119a857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116119a857604052565b60e0810190811067ffffffffffffffff8211176119a857604052565b90601f8019910116810190811067ffffffffffffffff8211176119a857604052565b51906001600160a01b03821682036107c957565b519081151582036107c957565b908160e09103126107c957611a9f60c060405192611a4e846119d2565b80518452611a5e60208201611a10565b6020850152611a6f60408201611a10565b60408501526060810151606085015260808101516080850152611a9460a08201611a24565b60a085015201611a24565b60c082015290565b3d15611ae2573d9067ffffffffffffffff82116119a85760405191611ad6601f8201601f1916602001846119ee565b82523d6000602084013e565b606090565b90600091808352600660205260ff60066040852001541615611ba957604051635aef244760e01b81526004810182905260e0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415611b9d5793611b78575b50611b6090611c80565b5060c060a08401511515930151151591600193929190565b611b60919350611b969060e03d60e0116117d6576117c781836119ee565b9290611b56565b604051903d90823e3d90fd5b508180918190565b91908201809211611bbe57565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611bbe57565b91908203918211611bbe57565b908152604081019291906002821015611c0d5760200152565b634e487b7160e01b600052602160045260246000fd5b9190811015611c335760051b0190565b634e487b7160e01b600052603260045260246000fd5b356001600160a01b03811681036107c95790565b600260005414611c6e576002600055565b604051633ee5aeb560e01b8152600490fd5b604051635aef244760e01b8152600481019190915260e0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611d1057600091611cf1575b50805115611ce8576080015190600190565b50600090600090565b611d0a915060e03d60e0116117d6576117c781836119ee565b38611cd6565b6040513d6000823e3d90fdfea2646970667358221220d3c8edc44bceb074cf27eede978d92d56c41a1bf01b0c5f201d26389d30f634764736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}