754 lines
42 KiB
JSON
754 lines
42 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "CactiAdapter",
|
|
"sourceName": "contracts/bridge/adapters/hyperledger/CactiAdapter.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "_cactiApiUrl",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"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": "requestId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "string",
|
|
"name": "cactiTxId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "sourceLedger",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "destLedger",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "CactiBridgeConfirmed",
|
|
"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": "sourceLedger",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "destLedger",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "cactiTxId",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "CactiBridgeInitiated",
|
|
"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": "BRIDGE_OPERATOR_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "CACTI_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": [
|
|
{
|
|
"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": [],
|
|
"name": "cactiApiUrl",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "cactiTxIds",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"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": "string",
|
|
"name": "cactiTxId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "sourceLedger",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "destLedger",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "confirmCactiOperation",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"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": "view",
|
|
"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"
|
|
}
|
|
],
|
|
"bytecode": "0x6080604052346200025a5762001c0d803803806200001d816200025f565b9283398101906040818303126200025a578051906001600160a01b03821682036200025a5760208181015190916001600160401b0391908282116200025a570191601f908582850112156200025a5783518381116200022f57601f19946200008b828501871684016200025f565b978289528383830101116200025a57829060005b8381106200024557505060009188010152620000d8600195868055620000c58162000285565b50620000d18162000305565b50620003a7565b5085519283116200022f5760039384548681811c9116801562000224575b838210146200020e57838111620001c3575b50819284116001146200015d5750508192939460009262000151575b505060001982841b1c191690831b1790555b60ff1960025416176002556040516117a89081620004458239f35b01519050388062000124565b6000858152828120918516979193925b888210620001ab5750508386979695961062000192575b505050811b01905562000136565b015160001983861b60f8161c1916905538808062000184565b8088859682949686015181550195019301906200016d565b85600052826000208480870160051c82019285881062000204575b0160051c019087905b828110620001f757505062000108565b60008155018790620001e7565b92508192620001de565b634e487b7160e01b600052602260045260246000fd5b90607f1690620000f6565b634e487b7160e01b600052604160045260246000fd5b8181018301518a82018401528492016200009f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200022f57604052565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200030157818052816020526040822081835260205260408220600160ff19825416179055339160008051602062001bed8339815191528180a4600190565b5090565b6001600160a01b031660008181527f0d4654aaffc87c2c9a3fd6a99770bc308fad799420104834ddcca8973d00903960205260408120549091907f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15689060ff16620003a257808352826020526040832082845260205260408320600160ff1982541617905560008051602062001bed833981519152339380a4600190565b505090565b6001600160a01b031660008181527fae160ebf1298c04e7ab037b67d627ef098735a5b564875df88e329c802734b6560205260408120549091907f02ea28831c201fc982539a8d6675f9df9dcd83f77f0a6acebbac6e795f5d28e49060ff16620003a257808352826020526040832082845260205260408320600160ff1982541617905560008051602062001bed833981519152339380a460019056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146112265750806307e383f1146111eb57806322f3e2d4146111c8578063248a9ca3146111995780632750fc78146111125780632b368ac2146110c65780632f2ff15d1461108757806336568abe146110405780634be40fd11461100557806360b4141114610f5b57806362a7ee0514610cb95780636cb4dfc014610c7b5780637ecebe0014610c415780638d75141514610afd57806391d1485414610ab0578063941b968214610a5257806397e67c3b14610a0c5780639b261e581461094a578063a217fddf1461092e578063b8915e2b14610847578063d046b4e2146106cf578063d547741f1461068e5763f33ffba31461011c57600080fd5b608036600319011261060c57610130611279565b6044356001600160401b03811161060c5761014f9036906004016112a5565b916064356001600160401b03811161060c5761016f9036906004016112a5565b505060026001541461067c57600260015560ff60025416156106445760243515610611578282019060408383031261060c5782356001600160401b03811161060c57826101bd918501611527565b916020840135906001600160401b03821161060c576101dd918501611527565b938251151580610602575b156105cb57336000526006602052604060002080549060001982146105b55760018201905561028460a860405180933360601b60208301526bffffffffffffffffffffffff198760601b16603483015260243560488301528751610253816068850160208c01611409565b8a51908301610269826068830160208f01611409565b01906068820152426088820152036088810184520182611343565b8051602090910120936001600160a01b038316610551576024353410610519576102d7905b604051926102b68461130c565b3384526001600160a01b0385166020850152602435604085015236916114f0565b6060820152836080820152600160a08201524260c0820152600060e082015283600052600460205260406000209460018060a01b038251166bffffffffffffffffffffffff60a01b9081885416178755600187019060018060a01b03602085015116908254161790556040820151600287015560608201518051906001600160401b0382116105035761037a8261037160038b01546112d2565b60038b0161145e565b602090601f8311600114610491576103ab929160009183610486575b50508160011b916000199060031b1c19161790565b60038701555b60808201516004870155600586019160a081015191600683101561047057602097600760e0610443948a977f70651ed420f834c30a51ec6d11b29d75e95bf1ca8ae7e37f458a25becf34a96f9760ff8019835416911617905560c08101516006850155015191015561043560405196602435885260808a890152608088019061142c565b90868203604088015261142c565b8481036060860181905260009091526001600160a01b03909316933393870190a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610396565b9190600389016000526020600020906000935b601f19841685106104e8576001945083601f198116106104cf575b505050811b0160038701556103b1565b015160001960f88460031b161c191690553880806104bf565b818101518355602094850194600190930192909101906104a4565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a0840111176105035760a082016040526102d7916105b0906001600160a01b03861661165e565b6102a9565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206c65646765727360881b6044820152606490fd5b50845115156101e8565b600080fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b3461060c57604036600319011261060c576106cd6004356106ad61128f565b908060005260006020526106c8600160406000200154611545565b6115e9565b005b3461060c5760208060031936011261060c57600435600052600481526040600020600581019060ff825416600681101561047057801590811561083c575b50156108075780546001600160a01b03908116338190036107cd576001830154821690816107805750506000808360028295948395541691015490828215610777575bf11561076b575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610750565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b03841117610503576107c89260405261165e565b610757565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b60019150148461070d565b3461060c57600036600319011261060c5760405160035460008261086a836112d2565b918282526020936001908560018216918260001461090e5750506001146108b1575b5061089992500383611343565b6108ad60405192828493845283019061142c565b0390f35b84915060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906000915b8583106108f657505061089993508201018561088c565b805483890185015287945086939092019181016108df565b60ff19168582015261089995151560051b850101925087915061088c9050565b3461060c57600036600319011261060c57602060405160008152f35b3461060c5760208060031936011261060c576004356000526005815260406000209060405191826000825461097e816112d2565b93848452600191866001821691826000146109ea5750506001146109ab575b505061089992500383611343565b85925060005281600020906000915b8583106109d25750506108999350820101858061099d565b805483890185015287945086939092019181016109ba565b925093505061089994915060ff191682840152151560051b820101858061099d565b3461060c57600036600319011261060c576108ad604051610a2c81611328565b6005815264436163746960d81b602082015260405191829160208352602083019061142c565b3461060c57600036600319011261060c576108ad604051610a7281611328565b601681527543616374692d496e7465726f7065726162696c69747960501b60208201526040519182916000835260406020840152604083019061142c565b3461060c57604036600319011261060c57610ac961128f565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461060c5760208060031936011261060c57600060e0604051610b1f8161130c565b82815282848201528260408201526060808201528260808201528260a08201528260c082015201526004356000526004815260406000209060405190610b648261130c565b82546001600160a01b039081168352600184015481168284019081526002850154604085019081529194909290610b9d60038201611364565b93606086019485526004820154946080870195865260ff6005840154169460a0880195600681101561047057610c32938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610c20610100958660808a015261012089019061142c565b955160a08801525160c0870190611451565b5160e085015251908301520390f35b3461060c57602036600319011261060c576001600160a01b03610c62611279565b1660005260066020526020604060002054604051908152f35b3461060c57602036600319011261060c576004356001600160401b03811161060c57610cad60209136906004016112a5565b90506040519015158152f35b3461060c57608036600319011261060c576001600160401b0360043560243582811161060c57610ced9036906004016112a5565b60449291923584811161060c57610d089036906004016112a5565b909160643586811161060c57610d229036906004016112a5565b9190957f02ea28831c201fc982539a8d6675f9df9dcd83f77f0a6acebbac6e795f5d28e4978860005260209860008a526040600020336000528a5260ff6040600020541615610f3d575086600052600489526040600020600581019081549160ff8316926006841015610470576001809403610f075760029060ff19161790556007429101558760005260058a52604060002091841161050357610dd084610dca84546112d2565b8461145e565b600090601f8511600114610e765750918391610e2c837f907f1918edaf1d34aabce588293d659a62ada55ca2b12a767d1311c8ae268afc9a9b9c96610e669896600091610e6b575b508160011b916000199060031b1c19161790565b90555b81604051928392833781016000815203902097610e596040519687966040885260408801916114b4565b92858403908601526114b4565b0390a3005b90508401358e610e18565b90601f198516836000528b600020926000905b828210610ef0575050918593917f907f1918edaf1d34aabce588293d659a62ada55ca2b12a767d1311c8ae268afc9a9b9c96610e6698969410610ed6575b5050600183811b019055610e2f565b830135600019600386901b60f8161c191690558b80610ec7565b86840135855593840193928d0192908d0190610e89565b60405162461bcd60e51b8152600481018e9052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461060c57602036600319011261060c576004356000526004602052604060002060018060a01b0390818154169160018201541690600281015492610fa260038301611364565b91610ff7600482015493610fe760ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061142c565b94608087015260a0860190611451565b60c084015260e08301520390f35b3461060c57600036600319011261060c5760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b3461060c57604036600319011261060c5761105961128f565b336001600160a01b03821603611075576106cd906004356115e9565b60405163334bd91960e11b8152600490fd5b3461060c57604036600319011261060c576106cd6004356110a661128f565b908060005260006020526110c1600160406000200154611545565b61156b565b3461060c57606036600319011261060c576110df611279565b506044356001600160401b03811161060c576110ff9036906004016112a5565b5050602060405166038d7ea4c680008152f35b3461060c57602036600319011261060c5760043580151580910361060c573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161561117a5760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b3461060c57602036600319011261060c5760043560005260006020526020600160406000200154604051908152f35b3461060c57600036600319011261060c57602060ff600254166040519015158152f35b3461060c57600036600319011261060c5760206040517f02ea28831c201fc982539a8d6675f9df9dcd83f77f0a6acebbac6e795f5d28e48152f35b3461060c57602036600319011261060c576004359063ffffffff60e01b821680920361060c57602091637965db0b60e01b8114908115611268575b5015158152f35b6301ffc9a760e01b14905083611261565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b9181601f8401121561060c578235916001600160401b03831161060c576020838186019501011161060c57565b90600182811c92168015611302575b60208310146112ec57565b634e487b7160e01b600052602260045260246000fd5b91607f16916112e1565b61010081019081106001600160401b0382111761050357604052565b604081019081106001600160401b0382111761050357604052565b90601f801991011681019081106001600160401b0382111761050357604052565b90604051918260008254611377816112d2565b908184526020946001916001811690816000146113e757506001146113a8575b5050506113a692500383611343565b565b600090815285812095935091905b8183106113cf5750506113a69350820101388080611397565b855488840185015294850194879450918301916113b6565b925050506113a694925060ff191682840152151560051b820101388080611397565b60005b83811061141c5750506000910152565b818101518382015260200161140c565b9060209161144581518092818552858086019101611409565b601f01601f1916010190565b9060068210156104705752565b90601f811161146c57505050565b6000916000526020600020906020601f850160051c830194106114aa575b601f0160051c01915b82811061149f57505050565b818155600101611493565b909250829061148a565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160401b03811161050357601f01601f191660200190565b9291926114fc826114d5565b9161150a6040519384611343565b82948184528183011161060c578281602093846000960137010152565b9080601f8301121561060c57816020611542933591016114f0565b90565b80600052600060205260406000203360005260205260ff6040600020541615610f3d5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146115e457808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146115e45780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b0316906116a8600080836020829551910182875af13d15611707573d9061168a826114d5565b916116986040519384611343565b82523d84602084013e5b8461170f565b9081519182151592836116d8575b5050506116c05750565b60249060405190635274afe760e01b82526004820152fd5b81929350906020918101031261170357602001519081159182150361170057503880806116b6565b80fd5b5080fd5b6060906116a2565b90611736575080511561172457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611769575b611747575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561173f56fea2646970667358221220b633a2bc6aa079a70b4b40b741e1e1e6ef046d73a2027058b47d1fcccf3596a964736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
|
|
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146112265750806307e383f1146111eb57806322f3e2d4146111c8578063248a9ca3146111995780632750fc78146111125780632b368ac2146110c65780632f2ff15d1461108757806336568abe146110405780634be40fd11461100557806360b4141114610f5b57806362a7ee0514610cb95780636cb4dfc014610c7b5780637ecebe0014610c415780638d75141514610afd57806391d1485414610ab0578063941b968214610a5257806397e67c3b14610a0c5780639b261e581461094a578063a217fddf1461092e578063b8915e2b14610847578063d046b4e2146106cf578063d547741f1461068e5763f33ffba31461011c57600080fd5b608036600319011261060c57610130611279565b6044356001600160401b03811161060c5761014f9036906004016112a5565b916064356001600160401b03811161060c5761016f9036906004016112a5565b505060026001541461067c57600260015560ff60025416156106445760243515610611578282019060408383031261060c5782356001600160401b03811161060c57826101bd918501611527565b916020840135906001600160401b03821161060c576101dd918501611527565b938251151580610602575b156105cb57336000526006602052604060002080549060001982146105b55760018201905561028460a860405180933360601b60208301526bffffffffffffffffffffffff198760601b16603483015260243560488301528751610253816068850160208c01611409565b8a51908301610269826068830160208f01611409565b01906068820152426088820152036088810184520182611343565b8051602090910120936001600160a01b038316610551576024353410610519576102d7905b604051926102b68461130c565b3384526001600160a01b0385166020850152602435604085015236916114f0565b6060820152836080820152600160a08201524260c0820152600060e082015283600052600460205260406000209460018060a01b038251166bffffffffffffffffffffffff60a01b9081885416178755600187019060018060a01b03602085015116908254161790556040820151600287015560608201518051906001600160401b0382116105035761037a8261037160038b01546112d2565b60038b0161145e565b602090601f8311600114610491576103ab929160009183610486575b50508160011b916000199060031b1c19161790565b60038701555b60808201516004870155600586019160a081015191600683101561047057602097600760e0610443948a977f70651ed420f834c30a51ec6d11b29d75e95bf1ca8ae7e37f458a25becf34a96f9760ff8019835416911617905560c08101516006850155015191015561043560405196602435885260808a890152608088019061142c565b90868203604088015261142c565b8481036060860181905260009091526001600160a01b03909316933393870190a460018055604051908152f35b634e487b7160e01b600052602160045260246000fd5b015190503880610396565b9190600389016000526020600020906000935b601f19841685106104e8576001945083601f198116106104cf575b505050811b0160038701556103b1565b015160001960f88460031b161c191690553880806104bf565b818101518355602094850194600190930192909101906104a4565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601060248201526f092dce6eaccccd2c6d2cadce8408aa8960831b6044820152606490fd5b604051906323b872dd60e01b60208301523360248301523060448301526024356064830152606482528160a08101106001600160401b0360a0840111176105035760a082016040526102d7916105b0906001600160a01b03861661165e565b6102a9565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206c65646765727360881b6044820152606490fd5b50845115156101e8565b600080fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f4164617074657220696e61637469766560801b6044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b3461060c57604036600319011261060c576106cd6004356106ad61128f565b908060005260006020526106c8600160406000200154611545565b6115e9565b005b3461060c5760208060031936011261060c57600435600052600481526040600020600581019060ff825416600681101561047057801590811561083c575b50156108075780546001600160a01b03908116338190036107cd576001830154821690816107805750506000808360028295948395541691015490828215610777575bf11561076b575b805460ff1916600517905560405160018152f35b6040513d6000823e3d90fd5b506108fc610750565b915091600201546040519163a9059cbb60e01b86840152602483015260448201526044815260808101918183106001600160401b03841117610503576107c89260405261165e565b610757565b60405162461bcd60e51b81526004810186905260126024820152712737ba103932b8bab2b9ba1039b2b73232b960711b6044820152606490fd5b60405162461bcd60e51b815260048101849052600d60248201526c10d85b9b9bdd0818d85b98d95b609a1b6044820152606490fd5b60019150148461070d565b3461060c57600036600319011261060c5760405160035460008261086a836112d2565b918282526020936001908560018216918260001461090e5750506001146108b1575b5061089992500383611343565b6108ad60405192828493845283019061142c565b0390f35b84915060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906000915b8583106108f657505061089993508201018561088c565b805483890185015287945086939092019181016108df565b60ff19168582015261089995151560051b850101925087915061088c9050565b3461060c57600036600319011261060c57602060405160008152f35b3461060c5760208060031936011261060c576004356000526005815260406000209060405191826000825461097e816112d2565b93848452600191866001821691826000146109ea5750506001146109ab575b505061089992500383611343565b85925060005281600020906000915b8583106109d25750506108999350820101858061099d565b805483890185015287945086939092019181016109ba565b925093505061089994915060ff191682840152151560051b820101858061099d565b3461060c57600036600319011261060c576108ad604051610a2c81611328565b6005815264436163746960d81b602082015260405191829160208352602083019061142c565b3461060c57600036600319011261060c576108ad604051610a7281611328565b601681527543616374692d496e7465726f7065726162696c69747960501b60208201526040519182916000835260406020840152604083019061142c565b3461060c57604036600319011261060c57610ac961128f565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461060c5760208060031936011261060c57600060e0604051610b1f8161130c565b82815282848201528260408201526060808201528260808201528260a08201528260c082015201526004356000526004815260406000209060405190610b648261130c565b82546001600160a01b039081168352600184015481168284019081526002850154604085019081529194909290610b9d60038201611364565b93606086019485526004820154946080870195865260ff6005840154169460a0880195600681101561047057610c32938a918852600760068701549660c08c0197885201549660e08b019788526040519b8c9b828d525116908b0152511660408901525160608801525193610c20610100958660808a015261012089019061142c565b955160a08801525160c0870190611451565b5160e085015251908301520390f35b3461060c57602036600319011261060c576001600160a01b03610c62611279565b1660005260066020526020604060002054604051908152f35b3461060c57602036600319011261060c576004356001600160401b03811161060c57610cad60209136906004016112a5565b90506040519015158152f35b3461060c57608036600319011261060c576001600160401b0360043560243582811161060c57610ced9036906004016112a5565b60449291923584811161060c57610d089036906004016112a5565b909160643586811161060c57610d229036906004016112a5565b9190957f02ea28831c201fc982539a8d6675f9df9dcd83f77f0a6acebbac6e795f5d28e4978860005260209860008a526040600020336000528a5260ff6040600020541615610f3d575086600052600489526040600020600581019081549160ff8316926006841015610470576001809403610f075760029060ff19161790556007429101558760005260058a52604060002091841161050357610dd084610dca84546112d2565b8461145e565b600090601f8511600114610e765750918391610e2c837f907f1918edaf1d34aabce588293d659a62ada55ca2b12a767d1311c8ae268afc9a9b9c96610e669896600091610e6b575b508160011b916000199060031b1c19161790565b90555b81604051928392833781016000815203902097610e596040519687966040885260408801916114b4565b92858403908601526114b4565b0390a3005b90508401358e610e18565b90601f198516836000528b600020926000905b828210610ef0575050918593917f907f1918edaf1d34aabce588293d659a62ada55ca2b12a767d1311c8ae268afc9a9b9c96610e6698969410610ed6575b5050600183811b019055610e2f565b830135600019600386901b60f8161c191690558b80610ec7565b86840135855593840193928d0192908d0190610e89565b60405162461bcd60e51b8152600481018e9052600e60248201526d496e76616c69642073746174757360901b6044820152606490fd5b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461060c57602036600319011261060c576004356000526004602052604060002060018060a01b0390818154169160018201541690600281015492610fa260038301611364565b91610ff7600482015493610fe760ff600585015416916007600686015495015495604051998a99610100928b5260208b015260408a01528060608a015288019061142c565b94608087015260a0860190611451565b60c084015260e08301520390f35b3461060c57600036600319011261060c5760206040517f7045adfe67d5f94dbfddcdb901e44bef55baacabb398c7cddda1bfd7620b15688152f35b3461060c57604036600319011261060c5761105961128f565b336001600160a01b03821603611075576106cd906004356115e9565b60405163334bd91960e11b8152600490fd5b3461060c57604036600319011261060c576106cd6004356110a661128f565b908060005260006020526110c1600160406000200154611545565b61156b565b3461060c57606036600319011261060c576110df611279565b506044356001600160401b03811161060c576110ff9036906004016112a5565b5050602060405166038d7ea4c680008152f35b3461060c57602036600319011261060c5760043580151580910361060c573360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff161561117a5760ff801960025416911617600255600080f35b60405163e2517d3f60e01b815233600482015260006024820152604490fd5b3461060c57602036600319011261060c5760043560005260006020526020600160406000200154604051908152f35b3461060c57600036600319011261060c57602060ff600254166040519015158152f35b3461060c57600036600319011261060c5760206040517f02ea28831c201fc982539a8d6675f9df9dcd83f77f0a6acebbac6e795f5d28e48152f35b3461060c57602036600319011261060c576004359063ffffffff60e01b821680920361060c57602091637965db0b60e01b8114908115611268575b5015158152f35b6301ffc9a760e01b14905083611261565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b9181601f8401121561060c578235916001600160401b03831161060c576020838186019501011161060c57565b90600182811c92168015611302575b60208310146112ec57565b634e487b7160e01b600052602260045260246000fd5b91607f16916112e1565b61010081019081106001600160401b0382111761050357604052565b604081019081106001600160401b0382111761050357604052565b90601f801991011681019081106001600160401b0382111761050357604052565b90604051918260008254611377816112d2565b908184526020946001916001811690816000146113e757506001146113a8575b5050506113a692500383611343565b565b600090815285812095935091905b8183106113cf5750506113a69350820101388080611397565b855488840185015294850194879450918301916113b6565b925050506113a694925060ff191682840152151560051b820101388080611397565b60005b83811061141c5750506000910152565b818101518382015260200161140c565b9060209161144581518092818552858086019101611409565b601f01601f1916010190565b9060068210156104705752565b90601f811161146c57505050565b6000916000526020600020906020601f850160051c830194106114aa575b601f0160051c01915b82811061149f57505050565b818155600101611493565b909250829061148a565b908060209392818452848401376000828201840152601f01601f1916010190565b6001600160401b03811161050357601f01601f191660200190565b9291926114fc826114d5565b9161150a6040519384611343565b82948184528183011161060c578281602093846000960137010152565b9080601f8301121561060c57816020611542933591016114f0565b90565b80600052600060205260406000203360005260205260ff6040600020541615610f3d5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146115e457808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146115e45780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60018060a01b0316906116a8600080836020829551910182875af13d15611707573d9061168a826114d5565b916116986040519384611343565b82523d84602084013e5b8461170f565b9081519182151592836116d8575b5050506116c05750565b60249060405190635274afe760e01b82526004820152fd5b81929350906020918101031261170357602001519081159182150361170057503880806116b6565b80fd5b5080fd5b6060906116a2565b90611736575080511561172457805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611769575b611747575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561173f56fea2646970667358221220b633a2bc6aa079a70b4b40b741e1e1e6ef046d73a2027058b47d1fcccf3596a964736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|