665 lines
36 KiB
JSON
665 lines
36 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "GenericStateChannelManager",
|
|
"sourceName": "contracts/channels/GenericStateChannelManager.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_admin",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_challengeWindowSeconds",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ECDSAInvalidSignature",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "length",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureLength",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "s",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureS",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ReentrancyGuardReentrantCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "newAdmin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AdminChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "stateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "balanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "balanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newDeadline",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ChallengeSubmitted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "oldWindow",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newWindow",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ChallengeWindowUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "stateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "balanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "balanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "cooperative",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "ChannelClosed",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "participantA",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "participantB",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "depositA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "depositB",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ChannelOpened",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [],
|
|
"name": "Paused",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [],
|
|
"name": "Unpaused",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "admin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "stateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vA",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vB",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rB",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sB",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "challengeClose",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "challengeWindowSeconds",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "stateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vA",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vB",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rB",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sB",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "closeChannelCooperative",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "finalizeClose",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "fundChannel",
|
|
"outputs": [],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "getChannel",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "participantA",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "participantB",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "depositA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "depositB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum IGenericStateChannelManager.ChannelStatus",
|
|
"name": "status",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeNonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "disputeStateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeBalanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeBalanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeDeadline",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"internalType": "struct IGenericStateChannelManager.Channel",
|
|
"name": "",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "getChannelCount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "participantA",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "participantB",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getChannelId",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "index",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "getChannelIdByIndex",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "participantB",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "openChannel",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "pause",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "paused",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "newAdmin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setAdmin",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newWindow",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setChallengeWindow",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "channelId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "stateHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vA",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sA",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "vB",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "rB",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "sB",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "submitClose",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "unpause",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"stateMutability": "payable",
|
|
"type": "receive"
|
|
}
|
|
],
|
|
"bytecode": "0x60803461010557601f6115f938819003918201601f19168301916001600160401b0383118484101761010a5780849260409485528339810103126101055780516001600160a01b0381169190829003610105576020015190600160005580156100d357811561008e57600180546001600160a01b0319169190911790556002556040516114d890816101218239f35b60405162461bcd60e51b815260206004820152601560248201527f7a65726f206368616c6c656e67652077696e646f7700000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60a0604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301c1aa0d14610d875780630eb8fe7a14610d6957806310df54a014610c0f5780631822c82414610a605780631986aabd14610a4257806323ebfda7146108fc5780632abb5e9d1461068d5780633f4ba83a146106345780634e46c77d1461051d5780634fc543ff146104b15780635c975abb1461048b57806368bfec8814610374578063704b6c02146102d15780637b0aed3d146102905780638456cb5914610231578063e2d002d9146101095763f851a4400361000e5734610104576000366003190112610104576001546040516001600160a01b039091168152602090f35b600080fd5b60203660031901126101045760043561012a60ff60015460a01c1615610f84565b8060005260046020526040600020610154600160ff60048401541661014e81610e22565b14611041565b600381019182546101fb5760018201546001600160a01b039081169390338590036101c25760026040917fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77936101ab341515610fb9565b3490558554169401548151908152346020820152a4005b60405162461bcd60e51b81526020600482015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b3461010457600036600319011261010457600154610259336001600160a01b03831614610eaa565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752600080a1005b34610104576040366003190112610104576102a9610e94565b602435906001600160a01b0382168203610104576020916102c991611078565b604051908152f35b34610104576020366003190112610104576102ea610e94565b600154906001600160a01b03906103043383851614610eaa565b16908115610342576001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600080a2005b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b346101045761038236610e42565b908a928a9489989a968998610395611299565b8660005260046020528c60406000209b8c9a60048c01549a60ff8c166103ba81610e22565b6001146103c690611041565b60028d015460038e01546103d991610f00565b6103e38585610f00565b146103ed90610f0d565b600160a01b600190038d54169e8f90600101608052600160a01b6001900360805154169161041a9c61116c565b60ff1916600317906004015561042f916112bc565b608051546104479083906001600160a01b03166112bc565b60405192835260208301526040820152606081016001905260807f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c91a26001600055005b3461010457600036600319011261010457602060ff60015460a01c166040519015158152f35b34610104576020366003190112610104576004356005548110156104e8576104da602091610ff4565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b3461010457602036600319011261010457600435610539611299565b80600052600460205260406000206004810190815490610567600260ff841661056181610e22565b14610f47565b600981015442106106015760ff1990911660031790915580546007820180547f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c9360809390916006916001600160a01b03916105c49183166112bc565b600183015416916105db60088201938454906112bc565b015491549054906040519283526020830152604082015260006060820152a26001600055005b60405162461bcd60e51b815260206004820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152606490fd5b346101045760003660031901126101045760015461065c336001600160a01b03831614610eaa565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933600080a1005b6020366003190112610104576106a1610e94565b6106b360ff60015460a01c1615610f84565b6001600160a01b031680156108c457338114610890576106d4341515610fb9565b6003546000199182821461087a57600182016003556040516106f581610ee3565b3381528160208201523460408201526000606082015260016080820152600060a0820152600060c0820152600060e082015260006101008201526000610120820152826000526004602052600961012060406000209260018060a01b038151166bffffffffffffffffffffffff60a01b9081865416178555600185019060018060a01b036020840151169082541617905560408101516002850155606081015160038501556004840160808201516107ac81610e22565b6107b581610e22565b60ff8019835416911617905560a0810151600585015560c0810151600685015560e081015160078501556101008101516008850155015191015560055492680100000000000000008410156108645761081684600160209601600555610ff4565b819291549060031b9185831b921b1916179055604051348152600084820152827fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d7760403393a4604051908152f35b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600c60248201526b1cd95b198818da185b9b995b60a21b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f1e995c9bc81c185c9d1a58da5c185b9d60821b6044820152606490fd5b346101045761090a36610e42565b8a60009a99989496939795929a526004602052604060002092610939600260ff60048701541661056181610e22565b61095f61094f6002860154600387015490610f00565b6109598888610f00565b14610f0d565b600584019182548a1115610a11577faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc429b610a0c996009998f966109bd958f8f998a8d918f938e9060018060a01b03600181845416930154169261116c565b558660068201558160078201558260088201556109dc60025442610f00565b9384910155604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b0390a2005b60405162461bcd60e51b81526020600482015260096024820152683737ba103732bbb2b960b91b6044820152606490fd5b34610104576000366003190112610104576020600254604051908152f35b3461010457610a6e36610e42565b908a60009a9998979a969396959495526004602052604060002095600487015495610a9b60ff8816610e22565b600160ff88161495868015610bf6575b15610bc257610ae9958d8f8d8f918d8f93610ad261094f6002840154600385015490610f00565b60018060a01b03600181845416930154169261116c565b610af560ff8316610e22565b15610b545760ff191660021760048201557faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc4294610a0c926009925b8560058201558660068201558160078201558260088201556109dc60025442610f00565b506005810154831115610b8f577faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc4294610a0c92600992610b30565b60405162461bcd60e51b815260206004820152600b60248201526a6f6c64657220737461746560a81b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b6044820152606490fd5b50610c0360ff8916610e22565b600260ff891614610aab565b3461010457602036600319011261010457610140604051610c2f81610ee3565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e0820152610100906000828201526000610120809201526004356000526004602052604060002060405192610c9484610ee3565b8360018060a01b039283815416825283600182015416936020830194855260028201546040840190815260038301546060850190815260ff600485015416906080860191610ce181610e22565b825260058501549260a0870193845260068601549460c08801958652600960078801549760e08a019889528a60088201549a01998a520154998b8d019a8b52816040519d51168d52511660208c01525160408b01525160608a015251610d4681610e22565b60808901525160a08801525160c08701525160e086015251908401525190820152f35b34610104576000366003190112610104576020600554604051908152f35b3461010457602036600319011261010457600435610db060018060a01b03600154163314610eaa565b8015610def5760407fedb9338f4b0faf2b899d2d7f54b90753d2a8ebb34936e381edb91b091c3e45a791600254908060025582519182526020820152a1005b60405162461bcd60e51b815260206004820152600b60248201526a7a65726f2077696e646f7760a81b6044820152606490fd5b60041115610e2c57565b634e487b7160e01b600052602160045260246000fd5b61016090600319011261010457600435906024359060443590606435906084359060a43560ff81168103610104579060c4359060e435906101043560ff81168103610104579061012435906101443590565b600435906001600160a01b038216820361010457565b15610eb157565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b610140810190811067ffffffffffffffff82111761086457604052565b9190820180921161087a57565b15610f1457565b60405162461bcd60e51b815260206004820152600b60248201526a62616c616e63652073756d60a81b6044820152606490fd5b15610f4e57565b60405162461bcd60e51b815260206004820152600e60248201526d6e6f7420696e206469737075746560901b6044820152606490fd5b15610f8b57565b60405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606490fd5b15610fc057565b60405162461bcd60e51b815260206004820152600c60248201526b1e995c9bc819195c1bdcda5d60a21b6044820152606490fd5b60055481101561102b5760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b1561104857565b60405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606490fd5b600554919060005b8381106110905750505050600090565b61109981610ff4565b9054600391821b1c600052600480602052604060002060018060a01b0380825416908087168083149283611159575b8315611132575b5050506110e2575b505050600101611080565b015460ff166110f081610e22565b6001811490811561111e575b506111085780806110d7565b935090506111169150610ff4565b9054911b1c90565b6002915061112b81610e22565b14386110fc565b8983161492509082611149575b50503880806110cf565b600184015416149050388061113f565b925081600185015416828a1614926110c8565b929b96939a959199949098979a6040519960208b0194855260408b015260608a0152608089015260a088015260a0875260c087019567ffffffffffffffff9188881083891117610864576101209088604052895190209860e08101997f19457468657265756d205369676e6564204d6573736167653a0a3332000000008b5260fc820152603c895201918783109083111761086457611235996112279861122c9861121e946040525190209384611387565b90979197611417565b611387565b90949194611417565b6001600160a01b03918216908216149283611289575b5050501561125557565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964207369677360a01b6044820152606490fd5b819293501691161438808061124b565b6002600054146112aa576002600055565b604051633ee5aeb560e01b8152600490fd5b816112c5575050565b600080808094819460018060a01b03165af1903d156113815767ffffffffffffffff903d82811161136d5760405192601f8201601f19908116603f011684019081118482101761135957604052825260203d92013e5b1561132257565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b634e487b7160e01b82526041600452602482fd5b5061131b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161140b57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156113ff5780516001600160a01b038116156113f657918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b61142081610e22565b80611429575050565b61143281610e22565b6001810361144c5760405163f645eedf60e01b8152600490fd5b61145581610e22565b600281036114765760405163fce698f760e01b815260048101839052602490fd5b80611482600392610e22565b1461148a5750565b602490604051906335e2f38360e21b82526004820152fdfea26469706673582212204e64355c4d6981cf0ae31764271e84e7818ff16ea78dbb9f1eee3d808691cc9264736f6c63430008160033",
|
|
"deployedBytecode": "0x60a0604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301c1aa0d14610d875780630eb8fe7a14610d6957806310df54a014610c0f5780631822c82414610a605780631986aabd14610a4257806323ebfda7146108fc5780632abb5e9d1461068d5780633f4ba83a146106345780634e46c77d1461051d5780634fc543ff146104b15780635c975abb1461048b57806368bfec8814610374578063704b6c02146102d15780637b0aed3d146102905780638456cb5914610231578063e2d002d9146101095763f851a4400361000e5734610104576000366003190112610104576001546040516001600160a01b039091168152602090f35b600080fd5b60203660031901126101045760043561012a60ff60015460a01c1615610f84565b8060005260046020526040600020610154600160ff60048401541661014e81610e22565b14611041565b600381019182546101fb5760018201546001600160a01b039081169390338590036101c25760026040917fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77936101ab341515610fb9565b3490558554169401548151908152346020820152a4005b60405162461bcd60e51b81526020600482015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b3461010457600036600319011261010457600154610259336001600160a01b03831614610eaa565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e752600080a1005b34610104576040366003190112610104576102a9610e94565b602435906001600160a01b0382168203610104576020916102c991611078565b604051908152f35b34610104576020366003190112610104576102ea610e94565b600154906001600160a01b03906103043383851614610eaa565b16908115610342576001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600080a2005b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b346101045761038236610e42565b908a928a9489989a968998610395611299565b8660005260046020528c60406000209b8c9a60048c01549a60ff8c166103ba81610e22565b6001146103c690611041565b60028d015460038e01546103d991610f00565b6103e38585610f00565b146103ed90610f0d565b600160a01b600190038d54169e8f90600101608052600160a01b6001900360805154169161041a9c61116c565b60ff1916600317906004015561042f916112bc565b608051546104479083906001600160a01b03166112bc565b60405192835260208301526040820152606081016001905260807f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c91a26001600055005b3461010457600036600319011261010457602060ff60015460a01c166040519015158152f35b34610104576020366003190112610104576004356005548110156104e8576104da602091610ff4565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b3461010457602036600319011261010457600435610539611299565b80600052600460205260406000206004810190815490610567600260ff841661056181610e22565b14610f47565b600981015442106106015760ff1990911660031790915580546007820180547f3534302235bb30aabab0ca52d64cc358fa351c1ca2e17595dcaec40660f3624c9360809390916006916001600160a01b03916105c49183166112bc565b600183015416916105db60088201938454906112bc565b015491549054906040519283526020830152604082015260006060820152a26001600055005b60405162461bcd60e51b815260206004820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152606490fd5b346101045760003660031901126101045760015461065c336001600160a01b03831614610eaa565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d16933600080a1005b6020366003190112610104576106a1610e94565b6106b360ff60015460a01c1615610f84565b6001600160a01b031680156108c457338114610890576106d4341515610fb9565b6003546000199182821461087a57600182016003556040516106f581610ee3565b3381528160208201523460408201526000606082015260016080820152600060a0820152600060c0820152600060e082015260006101008201526000610120820152826000526004602052600961012060406000209260018060a01b038151166bffffffffffffffffffffffff60a01b9081865416178555600185019060018060a01b036020840151169082541617905560408101516002850155606081015160038501556004840160808201516107ac81610e22565b6107b581610e22565b60ff8019835416911617905560a0810151600585015560c0810151600685015560e081015160078501556101008101516008850155015191015560055492680100000000000000008410156108645761081684600160209601600555610ff4565b819291549060031b9185831b921b1916179055604051348152600084820152827fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d7760403393a4604051908152f35b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600c60248201526b1cd95b198818da185b9b995b60a21b6044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f1e995c9bc81c185c9d1a58da5c185b9d60821b6044820152606490fd5b346101045761090a36610e42565b8a60009a99989496939795929a526004602052604060002092610939600260ff60048701541661056181610e22565b61095f61094f6002860154600387015490610f00565b6109598888610f00565b14610f0d565b600584019182548a1115610a11577faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc429b610a0c996009998f966109bd958f8f998a8d918f938e9060018060a01b03600181845416930154169261116c565b558660068201558160078201558260088201556109dc60025442610f00565b9384910155604051958695869192608093969594919660a084019784526020840152604083015260608201520152565b0390a2005b60405162461bcd60e51b81526020600482015260096024820152683737ba103732bbb2b960b91b6044820152606490fd5b34610104576000366003190112610104576020600254604051908152f35b3461010457610a6e36610e42565b908a60009a9998979a969396959495526004602052604060002095600487015495610a9b60ff8816610e22565b600160ff88161495868015610bf6575b15610bc257610ae9958d8f8d8f918d8f93610ad261094f6002840154600385015490610f00565b60018060a01b03600181845416930154169261116c565b610af560ff8316610e22565b15610b545760ff191660021760048201557faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc4294610a0c926009925b8560058201558660068201558160078201558260088201556109dc60025442610f00565b506005810154831115610b8f577faa864ec588761c222b85e680632ca4b4e8cb698ccd3ac96bfff3e88e2288bc4294610a0c92600992610b30565b60405162461bcd60e51b815260206004820152600b60248201526a6f6c64657220737461746560a81b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b6044820152606490fd5b50610c0360ff8916610e22565b600260ff891614610aab565b3461010457602036600319011261010457610140604051610c2f81610ee3565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e0820152610100906000828201526000610120809201526004356000526004602052604060002060405192610c9484610ee3565b8360018060a01b039283815416825283600182015416936020830194855260028201546040840190815260038301546060850190815260ff600485015416906080860191610ce181610e22565b825260058501549260a0870193845260068601549460c08801958652600960078801549760e08a019889528a60088201549a01998a520154998b8d019a8b52816040519d51168d52511660208c01525160408b01525160608a015251610d4681610e22565b60808901525160a08801525160c08701525160e086015251908401525190820152f35b34610104576000366003190112610104576020600554604051908152f35b3461010457602036600319011261010457600435610db060018060a01b03600154163314610eaa565b8015610def5760407fedb9338f4b0faf2b899d2d7f54b90753d2a8ebb34936e381edb91b091c3e45a791600254908060025582519182526020820152a1005b60405162461bcd60e51b815260206004820152600b60248201526a7a65726f2077696e646f7760a81b6044820152606490fd5b60041115610e2c57565b634e487b7160e01b600052602160045260246000fd5b61016090600319011261010457600435906024359060443590606435906084359060a43560ff81168103610104579060c4359060e435906101043560ff81168103610104579061012435906101443590565b600435906001600160a01b038216820361010457565b15610eb157565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b610140810190811067ffffffffffffffff82111761086457604052565b9190820180921161087a57565b15610f1457565b60405162461bcd60e51b815260206004820152600b60248201526a62616c616e63652073756d60a81b6044820152606490fd5b15610f4e57565b60405162461bcd60e51b815260206004820152600e60248201526d6e6f7420696e206469737075746560901b6044820152606490fd5b15610f8b57565b60405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606490fd5b15610fc057565b60405162461bcd60e51b815260206004820152600c60248201526b1e995c9bc819195c1bdcda5d60a21b6044820152606490fd5b60055481101561102b5760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b1561104857565b60405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606490fd5b600554919060005b8381106110905750505050600090565b61109981610ff4565b9054600391821b1c600052600480602052604060002060018060a01b0380825416908087168083149283611159575b8315611132575b5050506110e2575b505050600101611080565b015460ff166110f081610e22565b6001811490811561111e575b506111085780806110d7565b935090506111169150610ff4565b9054911b1c90565b6002915061112b81610e22565b14386110fc565b8983161492509082611149575b50503880806110cf565b600184015416149050388061113f565b925081600185015416828a1614926110c8565b929b96939a959199949098979a6040519960208b0194855260408b015260608a0152608089015260a088015260a0875260c087019567ffffffffffffffff9188881083891117610864576101209088604052895190209860e08101997f19457468657265756d205369676e6564204d6573736167653a0a3332000000008b5260fc820152603c895201918783109083111761086457611235996112279861122c9861121e946040525190209384611387565b90979197611417565b611387565b90949194611417565b6001600160a01b03918216908216149283611289575b5050501561125557565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964207369677360a01b6044820152606490fd5b819293501691161438808061124b565b6002600054146112aa576002600055565b604051633ee5aeb560e01b8152600490fd5b816112c5575050565b600080808094819460018060a01b03165af1903d156113815767ffffffffffffffff903d82811161136d5760405192601f8201601f19908116603f011684019081118482101761135957604052825260203d92013e5b1561132257565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b634e487b7160e01b82526041600452602482fd5b5061131b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161140b57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156113ff5780516001600160a01b038116156113f657918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b61142081610e22565b80611429575050565b61143281610e22565b6001810361144c5760405163f645eedf60e01b8152600490fd5b61145581610e22565b600281036114765760405163fce698f760e01b815260048101839052602490fd5b80611482600392610e22565b1461148a5750565b602490604051906335e2f38360e21b82526004820152fdfea26469706673582212204e64355c4d6981cf0ae31764271e84e7818ff16ea78dbb9f1eee3d808691cc9264736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|