Files
smom-dbis-138/artifacts/contracts/bridge/adapters/non-evm/XRPLAdapter.sol/XRPLAdapter.json
2026-03-02 12:14:09 -08:00

776 lines
40 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "XRPLAdapter",
"sourceName": "contracts/bridge/adapters/non-evm/XRPLAdapter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"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": "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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "xrplTxHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ledgerIndex",
"type": "uint256"
}
],
"name": "XRPLBridgeConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "xrplDestination",
"type": "string"
},
{
"indexed": false,
"internalType": "uint32",
"name": "destinationTag",
"type": "uint32"
}
],
"name": "XRPLBridgeInitiated",
"type": "event"
},
{
"inputs": [],
"name": "BRIDGE_OPERATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ORACLE_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "recipient",
"type": "bytes"
}
],
"name": "bridge",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "bridgeRequests",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "cancelBridge",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "xrplTxHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "ledgerIndex",
"type": "uint256"
}
],
"name": "confirmXRPLTransaction",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "drops",
"type": "uint64"
}
],
"name": "dropsToWei",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "estimateFee",
"outputs": [
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "getBridgeStatus",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "destinationData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "enum IChainAdapter.BridgeStatus",
"name": "status",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "completedAt",
"type": "uint256"
}
],
"internalType": "struct IChainAdapter.BridgeRequest",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getChainIdentifier",
"outputs": [
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "string",
"name": "identifier",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "getChainType",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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": "isActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_isActive",
"type": "bool"
}
],
"name": "setIsActive",
"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": "bytes",
"name": "destination",
"type": "bytes"
}
],
"name": "validateDestination",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "validatedXRPLAddresses",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "weiAmount",
"type": "uint256"
}
],
"name": "weiToDrops",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "xrplTxHashes",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x6080346200009957601f620018c438819003918201601f19168301916001600160401b038311848410176200009e578084926020946040528339810103126200009957516001600160a01b038116810362000099576200007b90600180556200006881620000b4565b50620000748162000134565b50620001d6565b50600160ff1960025416176002556040516116309081620002748239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200013057818052816020526040822081835260205260408220600160ff198254161790553391600080516020620018a48339815191528180a4600190565b5090565b6001600160a01b031660008181527f0d4654aaffc87c2c9a3fd6a99770bc308fad799420104834ddcca8973d00903960205260408120549091907f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15689060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620018a4833981519152339380a4600190565b505090565b6001600160a01b031660008181527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c160205260408120549091907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff16620001d157808352826020526040832082845260205260408320600160ff19825416179055600080516020620018a4833981519152339380a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110d75750806307e2cea51461109c57806317f129c41461105557806322f3e2d414611032578063248a9ca314611003578063259cc94014610fd75780632750fc7814610f505780632b368ac214610f095780632f2ff15d14610eca57806336568abe14610e835780634be40fd114610e4857806360b4141114610d9e5780636cb4dfc014610d5957806373f351f914610d2c5780637ecebe0014610cf25780638d75141514610bae57806391d1485414610b61578063941b968214610b0d57806397e67c3b14610ac4578063a217fddf14610aa8578063c956a9b414610a36578063d046b4e2146108ca578063d547741f14610889578063dd7d3a8b146107485763f33ffba31461013257600080fd5b608036600319011261064f5761014661112a565b6044356001600160401b03811161064f57610165903690600401611156565b6064356001600160401b03811161064f57610184903690600401611156565b909160026001541461073657600260015560ff60025416156106fe57602435156106cb576040516301b2d37f60e61b8152602060048201526024810182905281856044830137600060448383010152602081604481601f19601f8701168101030181305afa9081156106bf57600091610690575b50156106545761020936828661132a565b926000926004811015610627575b505033600052600560205260406000208054906000198214610611576001820190556102ad60ac60405180933360601b60208301526bffffffffffffffffffffffff198a60601b1660348301526024356048830152875161027f816068850160208c016112ba565b82019063ffffffff60e01b8860e01b166068830152606c82015242608c82015203608c8101845201826111f4565b8051602090910120936001600160a01b0386166105ad57602435341061057557610300905b604051926102df846111bd565b3384526001600160a01b03881660208501526024356040850152369161132a565b6060820152836080820152600160a08201524260c0820152600060e082015283600052600360205260406000209060018060a01b038151166bffffffffffffffffffffffff60a01b9081845416178355600183019060018060a01b03602084015116908254161790556040810151600283015560608101518051906001600160401b03821161055f5781906103986003860154611183565b601f811161050c575b50602090601f831160011461049a5760009261048f575b50508160011b916000199060031b1c19161760038301555b60808101516004830155600582019560a082015192600684101561047957600760e07fcf34fec365946bd41e0dec057299f514bd77c4c774d2e32933686c648a95c0c09460209a8a9760ff8019835416911617905560c08101516006850155015191015563ffffffff61045560405196602435885260608a89015260608801906112dd565b941660408601526001600160a01b031693339381900390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b0151905038806103b8565b9250600385016000526020600020906000935b601f19841685106104f1576001945083601f198116106104d8575b505050811b0160038301556103d0565b015160001960f88460031b161c191690553880806104c8565b818101518355602094850194600190930192909101906104ad565b909150600385016000526020600020601f840160051c810160208510610558575b90849392915b601f830160051c820181106105495750506103a1565b60008155859450600101610533565b508061052d565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761055f5760a082016040526103009161060c906001600160a01b0389166114fc565b6102d2565b634e487b7160e01b600052601160045260246000fd5b81929350906020918101031261064f5763ffffffff81351681350361064f5735903880610217565b600080fd5b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964205852504c206164647265737360601b6044820152606490fd5b6106b2915060203d6020116106b8575b6106aa81836111f4565b8101906113cb565b386101f8565b503d6106a0565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b3461064f57606036600319011261064f573360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c1602090815260409091205460243590600435907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff161561086b57508060005260038352604060002092600584019384549460ff86166006811015610479576001036108355760027f96016f23aecbf425ae969dbb67db052d10c7352d3a438b3661a7aabd167ad72e94959660ff19161790556007429101558260005260048152836040600020556040516044358152a3005b60405162461bcd60e51b815260048101849052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461064f57604036600319011261064f576108c86004356108a8611140565b908060005260006020526108c36001604060002001546113e3565b611487565b005b3461064f5760208060031936011261064f57600435600052600381526040600020600581019060ff8254166006811015610479578015908115610a2b575b50156109f65780546001600160a01b03908116338190036109bc5760018301548216908161096f5750506000808360028295948395541691015490828215610966575bf1156106bf575b805460ff1916600517905560405160018152f35b506108fc61094b565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761055f576109b7926040526114fc565b610952565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610908565b3461064f57602036600319011261064f576004356001600160401b03811161064f573660238201121561064f5760ff610a926020610a7f8194369060248160040135910161132a565b81604051938285809451938492016112ba565b8101600681520301902054166040519015158152f35b3461064f57600036600319011261064f57602060405160008152f35b3461064f57600036600319011261064f57610b09604051610ae4816111d9565b60048152631614941360e21b60208201526040519182916020835260208301906112dd565b0390f35b3461064f57600036600319011261064f57610b09604051610b2d816111d9565b600c81526b161494130b53585a5b9b995d60a21b6020820152604051918291600083526040602084015260408301906112dd565b3461064f57604036600319011261064f57610b7a611140565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461064f5760208060031936011261064f57600060e0604051610bd0816111bd565b82815282848201528260408201526060808201528260808201528260a08201528260c082015201526004356000526003815260406000209060405190610c15826111bd565b82546001600160a01b039081168352600184015481168284019081526002850154604085019081529194909290610c4e60038201611215565b93606086019485526004820154946080870195865260ff6005840154169460a0880195600681101561047957610ce3938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610cd1610100958660808a01526101208901906112dd565b955160a08801525160c0870190611302565b5160e085015251908301520390f35b3461064f57602036600319011261064f576001600160a01b03610d1361112a565b1660005260056020526020604060002054604051908152f35b3461064f57602036600319011261064f5760206040516001600160401b0364e8d4a5100060043504168152f35b3461064f57602036600319011261064f576004356001600160401b03811161064f57610d94610d8e6020923690600401611156565b90611361565b6040519015158152f35b3461064f57602036600319011261064f576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610de560038301611215565b91610e3a600482015493610e2a60ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a01528801906112dd565b94608087015260a0860190611302565b60c084015260e08301520390f35b3461064f57600036600319011261064f5760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b3461064f57604036600319011261064f57610e9c611140565b336001600160a01b03821603610eb8576108c890600435611487565b60405163334bd91960e11b8152600490fd5b3461064f57604036600319011261064f576108c8600435610ee9611140565b90806000526000602052610f046001604060002001546113e3565b611409565b3461064f57606036600319011261064f57610f2261112a565b506044356001600160401b03811161064f57610f42903690600401611156565b50506020604051612ee08152f35b3461064f57602036600319011261064f5760043580151580910361064f573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610fb85760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b3461064f57602036600319011261064f5760043560005260046020526020604060002054604051908152f35b3461064f57602036600319011261064f5760043560005260006020526020600160406000200154604051908152f35b3461064f57600036600319011261064f57602060ff600254166040519015158152f35b3461064f57602036600319011261064f576004356001600160401b03811680910361064f5764e8d4a510009081810291818304149015171561061157602090604051908152f35b3461064f57600036600319011261064f5760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b3461064f57602036600319011261064f576004359063ffffffff60e01b821680920361064f57602091637965db0b60e01b8114908115611119575b5015158152f35b6301ffc9a760e01b14905083611112565b600435906001600160a01b038216820361064f57565b602435906001600160a01b038216820361064f57565b9181601f8401121561064f578235916001600160401b03831161064f576020838186019501011161064f57565b90600182811c921680156111b3575b602083101461119d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611192565b61010081019081106001600160401b0382111761055f57604052565b604081019081106001600160401b0382111761055f57604052565b90601f801991011681019081106001600160401b0382111761055f57604052565b9060405191826000825461122881611183565b908184526020946001916001811690816000146112985750600114611259575b505050611257925003836111f4565b565b600090815285812095935091905b8183106112805750506112579350820101388080611248565b85548884018501529485019487945091830191611267565b9250505061125794925060ff191682840152151560051b820101388080611248565b60005b8381106112cd5750506000910152565b81810151838201526020016112bd565b906020916112f6815180928185528580860191016112ba565b601f01601f1916010190565b9060068210156104795752565b6001600160401b03811161055f57601f01601f191660200190565b9291926113368261130f565b9161134460405193846111f4565b82948184528183011161064f578281602093846000960137010152565b61136c91369161132a565b8051601a811080156113c1575b6113ba57156113a457602001516001600160f81b031916604760f91b0161139f57600190565b600090565b634e487b7160e01b600052603260045260246000fd5b5050600090565b5060238111611379565b9081602091031261064f5751801515810361064f5790565b80600052600060205260406000203360005260205260ff604060002054161561086b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461148257808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146114825780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6000806115469260018060a01b03169360208151910182865af13d1561158f573d906115278261130f565b9161153560405193846111f4565b82523d6000602084013e5b83611597565b8051908115159182611574575b505061155c5750565b60249060405190635274afe760e01b82526004820152fd5b61158792506020809183010191016113cb565b153880611553565b606090611540565b906115be57508051156115ac57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806115f1575b6115cf575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156115c756fea26469706673582212209ff8be0dc622f371f1526ccf00048bde7b8acabf33c771807c969aa3553e340d64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146110d75750806307e2cea51461109c57806317f129c41461105557806322f3e2d414611032578063248a9ca314611003578063259cc94014610fd75780632750fc7814610f505780632b368ac214610f095780632f2ff15d14610eca57806336568abe14610e835780634be40fd114610e4857806360b4141114610d9e5780636cb4dfc014610d5957806373f351f914610d2c5780637ecebe0014610cf25780638d75141514610bae57806391d1485414610b61578063941b968214610b0d57806397e67c3b14610ac4578063a217fddf14610aa8578063c956a9b414610a36578063d046b4e2146108ca578063d547741f14610889578063dd7d3a8b146107485763f33ffba31461013257600080fd5b608036600319011261064f5761014661112a565b6044356001600160401b03811161064f57610165903690600401611156565b6064356001600160401b03811161064f57610184903690600401611156565b909160026001541461073657600260015560ff60025416156106fe57602435156106cb576040516301b2d37f60e61b8152602060048201526024810182905281856044830137600060448383010152602081604481601f19601f8701168101030181305afa9081156106bf57600091610690575b50156106545761020936828661132a565b926000926004811015610627575b505033600052600560205260406000208054906000198214610611576001820190556102ad60ac60405180933360601b60208301526bffffffffffffffffffffffff198a60601b1660348301526024356048830152875161027f816068850160208c016112ba565b82019063ffffffff60e01b8860e01b166068830152606c82015242608c82015203608c8101845201826111f4565b8051602090910120936001600160a01b0386166105ad57602435341061057557610300905b604051926102df846111bd565b3384526001600160a01b03881660208501526024356040850152369161132a565b6060820152836080820152600160a08201524260c0820152600060e082015283600052600360205260406000209060018060a01b038151166bffffffffffffffffffffffff60a01b9081845416178355600183019060018060a01b03602084015116908254161790556040810151600283015560608101518051906001600160401b03821161055f5781906103986003860154611183565b601f811161050c575b50602090601f831160011461049a5760009261048f575b50508160011b916000199060031b1c19161760038301555b60808101516004830155600582019560a082015192600684101561047957600760e07fcf34fec365946bd41e0dec057299f514bd77c4c774d2e32933686c648a95c0c09460209a8a9760ff8019835416911617905560c08101516006850155015191015563ffffffff61045560405196602435885260608a89015260608801906112dd565b941660408601526001600160a01b031693339381900390a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b0151905038806103b8565b9250600385016000526020600020906000935b601f19841685106104f1576001945083601f198116106104d8575b505050811b0160038301556103d0565b015160001960f88460031b161c191690553880806104c8565b818101518355602094850194600190930192909101906104ad565b909150600385016000526020600020601f840160051c810160208510610558575b90849392915b601f830160051c820181106105495750506103a1565b60008155859450600101610533565b508061052d565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a08401111761055f5760a082016040526103009161060c906001600160a01b0389166114fc565b6102d2565b634e487b7160e01b600052601160045260246000fd5b81929350906020918101031261064f5763ffffffff81351681350361064f5735903880610217565b600080fd5b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964205852504c206164647265737360601b6044820152606490fd5b6106b2915060203d6020116106b8575b6106aa81836111f4565b8101906113cb565b386101f8565b503d6106a0565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b3461064f57606036600319011261064f573360009081527fa629f6981c2f6895a67dc766e8e03ff72d04a413d0d8773a3ca56e9e474032c1602090815260409091205460243590600435907f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef19060ff161561086b57508060005260038352604060002092600584019384549460ff86166006811015610479576001036108355760027f96016f23aecbf425ae969dbb67db052d10c7352d3a438b3661a7aabd167ad72e94959660ff19161790556007429101558260005260048152836040600020556040516044358152a3005b60405162461bcd60e51b815260048101849052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461064f57604036600319011261064f576108c86004356108a8611140565b908060005260006020526108c36001604060002001546113e3565b611487565b005b3461064f5760208060031936011261064f57600435600052600381526040600020600581019060ff8254166006811015610479578015908115610a2b575b50156109f65780546001600160a01b03908116338190036109bc5760018301548216908161096f5750506000808360028295948395541691015490828215610966575bf1156106bf575b805460ff1916600517905560405160018152f35b506108fc61094b565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b0384111761055f576109b7926040526114fc565b610952565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b600191501484610908565b3461064f57602036600319011261064f576004356001600160401b03811161064f573660238201121561064f5760ff610a926020610a7f8194369060248160040135910161132a565b81604051938285809451938492016112ba565b8101600681520301902054166040519015158152f35b3461064f57600036600319011261064f57602060405160008152f35b3461064f57600036600319011261064f57610b09604051610ae4816111d9565b60048152631614941360e21b60208201526040519182916020835260208301906112dd565b0390f35b3461064f57600036600319011261064f57610b09604051610b2d816111d9565b600c81526b161494130b53585a5b9b995d60a21b6020820152604051918291600083526040602084015260408301906112dd565b3461064f57604036600319011261064f57610b7a611140565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461064f5760208060031936011261064f57600060e0604051610bd0816111bd565b82815282848201528260408201526060808201528260808201528260a08201528260c082015201526004356000526003815260406000209060405190610c15826111bd565b82546001600160a01b039081168352600184015481168284019081526002850154604085019081529194909290610c4e60038201611215565b93606086019485526004820154946080870195865260ff6005840154169460a0880195600681101561047957610ce3938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610cd1610100958660808a01526101208901906112dd565b955160a08801525160c0870190611302565b5160e085015251908301520390f35b3461064f57602036600319011261064f576001600160a01b03610d1361112a565b1660005260056020526020604060002054604051908152f35b3461064f57602036600319011261064f5760206040516001600160401b0364e8d4a5100060043504168152f35b3461064f57602036600319011261064f576004356001600160401b03811161064f57610d94610d8e6020923690600401611156565b90611361565b6040519015158152f35b3461064f57602036600319011261064f576004356000526003602052604060002060018060a01b0390818154169160018201541690600281015492610de560038301611215565b91610e3a600482015493610e2a60ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a01528801906112dd565b94608087015260a0860190611302565b60c084015260e08301520390f35b3461064f57600036600319011261064f5760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b3461064f57604036600319011261064f57610e9c611140565b336001600160a01b03821603610eb8576108c890600435611487565b60405163334bd91960e11b8152600490fd5b3461064f57604036600319011261064f576108c8600435610ee9611140565b90806000526000602052610f046001604060002001546113e3565b611409565b3461064f57606036600319011261064f57610f2261112a565b506044356001600160401b03811161064f57610f42903690600401611156565b50506020604051612ee08152f35b3461064f57602036600319011261064f5760043580151580910361064f573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610fb85760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b3461064f57602036600319011261064f5760043560005260046020526020604060002054604051908152f35b3461064f57602036600319011261064f5760043560005260006020526020600160406000200154604051908152f35b3461064f57600036600319011261064f57602060ff600254166040519015158152f35b3461064f57602036600319011261064f576004356001600160401b03811680910361064f5764e8d4a510009081810291818304149015171561061157602090604051908152f35b3461064f57600036600319011261064f5760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b3461064f57602036600319011261064f576004359063ffffffff60e01b821680920361064f57602091637965db0b60e01b8114908115611119575b5015158152f35b6301ffc9a760e01b14905083611112565b600435906001600160a01b038216820361064f57565b602435906001600160a01b038216820361064f57565b9181601f8401121561064f578235916001600160401b03831161064f576020838186019501011161064f57565b90600182811c921680156111b3575b602083101461119d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611192565b61010081019081106001600160401b0382111761055f57604052565b604081019081106001600160401b0382111761055f57604052565b90601f801991011681019081106001600160401b0382111761055f57604052565b9060405191826000825461122881611183565b908184526020946001916001811690816000146112985750600114611259575b505050611257925003836111f4565b565b600090815285812095935091905b8183106112805750506112579350820101388080611248565b85548884018501529485019487945091830191611267565b9250505061125794925060ff191682840152151560051b820101388080611248565b60005b8381106112cd5750506000910152565b81810151838201526020016112bd565b906020916112f6815180928185528580860191016112ba565b601f01601f1916010190565b9060068210156104795752565b6001600160401b03811161055f57601f01601f191660200190565b9291926113368261130f565b9161134460405193846111f4565b82948184528183011161064f578281602093846000960137010152565b61136c91369161132a565b8051601a811080156113c1575b6113ba57156113a457602001516001600160f81b031916604760f91b0161139f57600190565b600090565b634e487b7160e01b600052603260045260246000fd5b5050600090565b5060238111611379565b9081602091031261064f5751801515810361064f5790565b80600052600060205260406000203360005260205260ff604060002054161561086b5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461148257808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146114825780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6000806115469260018060a01b03169360208151910182865af13d1561158f573d906115278261130f565b9161153560405193846111f4565b82523d6000602084013e5b83611597565b8051908115159182611574575b505061155c5750565b60249060405190635274afe760e01b82526004820152fd5b61158792506020809183010191016113cb565b153880611553565b606090611540565b906115be57508051156115ac57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806115f1575b6115cf575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156115c756fea26469706673582212209ff8be0dc622f371f1526ccf00048bde7b8acabf33c771807c969aa3553e340d64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}