633 lines
34 KiB
JSON
633 lines
34 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "PaymentChannelManager",
|
|
"sourceName": "contracts/channels/PaymentChannelManager.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": "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": "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": "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": "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 IPaymentChannelManager.ChannelStatus",
|
|
"name": "status",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeNonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeBalanceA",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeBalanceB",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "disputeDeadline",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"internalType": "struct IPaymentChannelManager.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": "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": "0x60803461010557601f61159a38819003918201601f19168301916001600160401b0383118484101761010a5780849260409485528339810103126101055780516001600160a01b0381169190829003610105576020015190600160005580156100d357811561008e57600180546001600160a01b03191691909117905560025560405161147990816101218239f35b60405162461bcd60e51b815260206004820152601560248201527f7a65726f206368616c6c656e67652077696e646f7700000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600a6024820152693d32b9379030b236b4b760b11b6044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260049081361015610020575b5050361561001e57600080fd5b005b600091823560e01c90816301c1aa0d14610d025781630eb8fe7a14610ce357816310df54a014610baf5781631986aabd14610b9057816329c39aff14610a855781632abb5e9d146108555781633f4ba83a146107fc5783826347780b2d146106f9575081634e46c77d146105f95781634fc543ff1461058a5781635b2eeb96146103a45781635c975abb1461037d578163704b6c02146102d85781637b0aed3d146102965781638456cb5914610234578163e2d002d914610111575063f851a44003610011573461010d578160031936011261010d5760015490516001600160a01b039091168152602090f35b5080fd5b919050602036600319011261023057813561013460ff60015460a01c1615610f2c565b808452826020528184209161015a600160ff868601541661015481610d9e565b14610fe9565b6003830180546101fc5760018060a01b039081600186015416958633036101c557507fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d7792916002916101ad341515610f61565b3490558554169401548151908152346020820152a480f35b606490602085519162461bcd60e51b835282015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152fd5b815162461bcd60e51b8152602081870152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b8280fd5b833461029357806003193601126102935760015461025c336001600160a01b03831614610e26565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7528180a180f35b80fd5b50503461010d578060031936011261010d576102b0610e10565b602435926001600160a01b038416840361029357506020926102d191611020565b9051908152f35b8391503461010d57602036600319011261010d576102f4610e10565b600154906001600160a01b039061030e3383851614610e26565b1691821561034d57506001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c8280a280f35b606490602086519162461bcd60e51b8352820152600a6024820152693d32b9379030b236b4b760b11b6044820152fd5b50503461010d578160031936011261010d5760209060ff60015460a01c1690519015158152f35b8391503461010d576103b536610dbe565b898c9b94959297989a9b96939652836020528c8c20968488019687549660ff8816946103e086610d9e565b6001861496878015610577575b1561054357918f918f938f8f90958f9661044b9b9a98968861042f61041f60026104469e9c0154600384015490610ecf565b6104298787610ecf565b14610ef2565b60018060a01b036001818354169201541691611114565b610d9e565b156104d25750976008926104cc949260027ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e999a9b60ff19161790555b8560058201558660068201558260078201556104a660025442610ecf565b938491015551948594859094939260609260808301968352602083015260408201520152565b0390a280f35b915050600582015484111561051257506104cc917ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e959697600892610488565b606490602089519162461bcd60e51b8352820152600b60248201526a6f6c64657220737461746560a81b6044820152fd5b50508f5162461bcd60e51b8152602081890152600c60248201526b77726f6e672073746174757360a01b6044820152606490fd5b5061058187610d9e565b600287146103ed565b9050823461029357602036600319011261029357508035906005548210156105c6576020836105b884610f9c565b91905490519160031b1c8152f35b606490602084519162461bcd60e51b8352820152600d60248201526c6f7574206f6620626f756e647360981b6044820152fd5b9050346102305760203660031901126102305780359161061761123a565b828452816020528084209180830190815490610641600260ff841661063b81610d9e565b14610e92565b600885015442106106c857506060927f612fcd7fc5b262af15b250588eabe1e611eba35c649603128555e1522dda628a94926003889360ff191617905560018060a01b036106b06007828654169261069f600688019485549061125d565b60018701541695019485549061125d565b54925481519384526020840152820152a26001815580f35b606490602085519162461bcd60e51b8352820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152fd5b9150913461010d578061070b36610dbe565b91899d979c93879b8e989b956107229b979b61123a565b8681528a60205220998a998a01978c8a8a549960ff8b1661074281610d9e565b60011461074e90610fe9565b60028e015460038f015461076191610ecf565b61076b8484610ecf565b1461077590610ef2565b8d546001909e01546001600160a01b039e8f169e6107979b9116908f90611114565b60ff191660031790556107a99161125d565b600101546107c091906001600160a01b031661125d565b8151928352602083015281016001905260607f612fcd7fc5b262af15b250588eabe1e611eba35c649603128555e1522dda628a91a26001815580f35b8334610293578060031936011261029357600154610824336001600160a01b03831614610e26565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d169338180a180f35b919050602092836003193601126102935761086e610e10565b9061088160ff60015460a01c1615610f2c565b6001600160a01b03918216918215610a4f57338314610a1d576108a5341515610f61565b6003549460001991828714610a0a57838080889360018b016003558a8c86519687936108d085610e5f565b338552828501908d82528083870193348552888d60608a019782895260808b019960018b5260a08c019b848d5260c081019d8e5260e081019e8f52610100019e8f52835252209a5116906bffffffffffffffffffffffff60a01b91828c5416178b5560018b0192511690825416179055516002880155516003870155868601905161095a81610d9e565b61096381610d9e565b60ff198254169060ff1617905551600585015551600684015551600783015551906008015560055490680100000000000000008210156109f757508060016109ae9201600555610f9c565b819291549060031b9187831b921b191617905582519034825285820152837fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77843393a451908152f35b634e487b7160e01b845260419052602483fd5b634e487b7160e01b845260118252602484fd5b835162461bcd60e51b8152808601879052600c60248201526b1cd95b198818da185b9b995b60a21b6044820152606490fd5b835162461bcd60e51b8152808601879052601060248201526f1e995c9bc81c185c9d1a58da5c185b9d60821b6044820152606490fd5b8391503461010d57610a9636610dbe565b93898c9b9697989a9b94929452856020528c8c2096610ac0600260ff898b01541661063b81610d9e565b610ae28b6104298b610adc8c6003600282015491015490610ecf565b92610ecf565b600588019687548b1115610b6057509487948a948d9e9f9794610b47947ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e9f968f9d6104cc9e8a60089f9a839f9b60018060a01b036001818354169201541691611114565b558660068201558260078201556104a660025442610ecf565b6064915060208f519162461bcd60e51b835282015260096024820152683737ba103732bbb2b960b91b6044820152fd5b50503461010d578160031936011261010d576020906002549051908152f35b9190503461023057602036600319011261023057918280610120945192610bd584610e5f565b80845280602085015280828501528060608501528060808501528060a08501528060c08501528060e08501528061010080950152843581528460205220815193610c1e85610e5f565b81546001600160a01b0390811686526001830154811660208701908152600284015485880190815260038501546060890190815293850154919592939092608089019260ff16610c6d81610d9e565b835260058601549360a08a0194855260068701549560c08b01968752600860078901549860e08d01998a520154988a8c01998a528184519c51168c52511660208b0152519089015251606088015251610cc581610d9e565b60808701525160a08601525160c08501525160e08401525190820152f35b50503461010d578160031936011261010d576020906005549051908152f35b90503461023057602036600319011261023057803590610d2d60018060a01b03600154163314610e26565b8115610d6d5750907fedb9338f4b0faf2b899d2d7f54b90753d2a8ebb34936e381edb91b091c3e45a791600254908060025582519182526020820152a180f35b606490602084519162461bcd60e51b8352820152600b60248201526a7a65726f2077696e646f7760a81b6044820152fd5b60041115610da857565b634e487b7160e01b600052602160045260246000fd5b610140906003190112610e0b576004359060243590604435906064359060843560ff81168103610e0b579060a4359060c4359060e43560ff81168103610e0b579061010435906101243590565b600080fd5b600435906001600160a01b0382168203610e0b57565b15610e2d57565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b610120810190811067ffffffffffffffff821117610e7c57604052565b634e487b7160e01b600052604160045260246000fd5b15610e9957565b60405162461bcd60e51b815260206004820152600e60248201526d6e6f7420696e206469737075746560901b6044820152606490fd5b91908201809211610edc57565b634e487b7160e01b600052601160045260246000fd5b15610ef957565b60405162461bcd60e51b815260206004820152600b60248201526a62616c616e63652073756d60a81b6044820152606490fd5b15610f3357565b60405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606490fd5b15610f6857565b60405162461bcd60e51b815260206004820152600c60248201526b1e995c9bc819195c1bdcda5d60a21b6044820152606490fd5b600554811015610fd35760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b15610ff057565b60405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606490fd5b600554919060005b8381106110385750505050600090565b61104181610f9c565b9054600391821b1c600052600480602052604060002060018060a01b0380825416908087168083149283611101575b83156110da575b50505061108a575b505050600101611028565b015460ff1661109881610d9e565b600181149081156110c6575b506110b057808061107f565b935090506110be9150610f9c565b9054911b1c90565b600291506110d381610d9e565b14386110a4565b89831614925090826110f1575b5050388080611077565b60018401541614905038806110e7565b925081600185015416828a161492611070565b919a9592979699949098936040519860208a0193845260408a0152606089015260808801526080875260a087019567ffffffffffffffff9188881083891117610e7c576101009088604052895190209860c08101997f19457468657265756d205369676e6564204d6573736167653a0a3332000000008b5260dc820152603c8952019187831090831117610e7c576111d6996111c8986111cd986111bf946040525190209384611328565b909791976113b8565b611328565b909491946113b8565b6001600160a01b0391821690821614928361122a575b505050156111f657565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964207369677360a01b6044820152606490fd5b81929350169116143880806111ec565b60026000541461124b576002600055565b604051633ee5aeb560e01b8152600490fd5b81611266575050565b600080808094819460018060a01b03165af1903d156113225767ffffffffffffffff903d82811161130e5760405192601f8201601f19908116603f01168401908111848210176112fa57604052825260203d92013e5b156112c357565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b634e487b7160e01b82526041600452602482fd5b506112bc565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116113ac57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156113a05780516001600160a01b0381161561139757918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6113c181610d9e565b806113ca575050565b6113d381610d9e565b600181036113ed5760405163f645eedf60e01b8152600490fd5b6113f681610d9e565b600281036114175760405163fce698f760e01b815260048101839052602490fd5b80611423600392610d9e565b1461142b5750565b602490604051906335e2f38360e21b82526004820152fdfea264697066735822122055f966e1104072a1d896ec60d26678ce7a7138ea18b53fa3ec7e20d37ce9957564736f6c63430008160033",
|
|
"deployedBytecode": "0x60406080815260049081361015610020575b5050361561001e57600080fd5b005b600091823560e01c90816301c1aa0d14610d025781630eb8fe7a14610ce357816310df54a014610baf5781631986aabd14610b9057816329c39aff14610a855781632abb5e9d146108555781633f4ba83a146107fc5783826347780b2d146106f9575081634e46c77d146105f95781634fc543ff1461058a5781635b2eeb96146103a45781635c975abb1461037d578163704b6c02146102d85781637b0aed3d146102965781638456cb5914610234578163e2d002d914610111575063f851a44003610011573461010d578160031936011261010d5760015490516001600160a01b039091168152602090f35b5080fd5b919050602036600319011261023057813561013460ff60015460a01c1615610f2c565b808452826020528184209161015a600160ff868601541661015481610d9e565b14610fe9565b6003830180546101fc5760018060a01b039081600186015416958633036101c557507fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d7792916002916101ad341515610f61565b3490558554169401548151908152346020820152a480f35b606490602085519162461bcd60e51b835282015260116024820152703737ba103830b93a34b1b4b830b73a102160791b6044820152fd5b815162461bcd60e51b8152602081870152600e60248201526d185b1c9958591e48199d5b99195960921b6044820152606490fd5b8280fd5b833461029357806003193601126102935760015461025c336001600160a01b03831614610e26565b60ff60a01b1916600160a01b176001557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7528180a180f35b80fd5b50503461010d578060031936011261010d576102b0610e10565b602435926001600160a01b038416840361029357506020926102d191611020565b9051908152f35b8391503461010d57602036600319011261010d576102f4610e10565b600154906001600160a01b039061030e3383851614610e26565b1691821561034d57506001600160a01b03191681176001557f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c8280a280f35b606490602086519162461bcd60e51b8352820152600a6024820152693d32b9379030b236b4b760b11b6044820152fd5b50503461010d578160031936011261010d5760209060ff60015460a01c1690519015158152f35b8391503461010d576103b536610dbe565b898c9b94959297989a9b96939652836020528c8c20968488019687549660ff8816946103e086610d9e565b6001861496878015610577575b1561054357918f918f938f8f90958f9661044b9b9a98968861042f61041f60026104469e9c0154600384015490610ecf565b6104298787610ecf565b14610ef2565b60018060a01b036001818354169201541691611114565b610d9e565b156104d25750976008926104cc949260027ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e999a9b60ff19161790555b8560058201558660068201558260078201556104a660025442610ecf565b938491015551948594859094939260609260808301968352602083015260408201520152565b0390a280f35b915050600582015484111561051257506104cc917ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e959697600892610488565b606490602089519162461bcd60e51b8352820152600b60248201526a6f6c64657220737461746560a81b6044820152fd5b50508f5162461bcd60e51b8152602081890152600c60248201526b77726f6e672073746174757360a01b6044820152606490fd5b5061058187610d9e565b600287146103ed565b9050823461029357602036600319011261029357508035906005548210156105c6576020836105b884610f9c565b91905490519160031b1c8152f35b606490602084519162461bcd60e51b8352820152600d60248201526c6f7574206f6620626f756e647360981b6044820152fd5b9050346102305760203660031901126102305780359161061761123a565b828452816020528084209180830190815490610641600260ff841661063b81610d9e565b14610e92565b600885015442106106c857506060927f612fcd7fc5b262af15b250588eabe1e611eba35c649603128555e1522dda628a94926003889360ff191617905560018060a01b036106b06007828654169261069f600688019485549061125d565b60018701541695019485549061125d565b54925481519384526020840152820152a26001815580f35b606490602085519162461bcd60e51b8352820152600b60248201526a3bb4b73237bb9037b832b760a91b6044820152fd5b9150913461010d578061070b36610dbe565b91899d979c93879b8e989b956107229b979b61123a565b8681528a60205220998a998a01978c8a8a549960ff8b1661074281610d9e565b60011461074e90610fe9565b60028e015460038f015461076191610ecf565b61076b8484610ecf565b1461077590610ef2565b8d546001909e01546001600160a01b039e8f169e6107979b9116908f90611114565b60ff191660031790556107a99161125d565b600101546107c091906001600160a01b031661125d565b8151928352602083015281016001905260607f612fcd7fc5b262af15b250588eabe1e611eba35c649603128555e1522dda628a91a26001815580f35b8334610293578060031936011261029357600154610824336001600160a01b03831614610e26565b60ff60a01b19166001557fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d169338180a180f35b919050602092836003193601126102935761086e610e10565b9061088160ff60015460a01c1615610f2c565b6001600160a01b03918216918215610a4f57338314610a1d576108a5341515610f61565b6003549460001991828714610a0a57838080889360018b016003558a8c86519687936108d085610e5f565b338552828501908d82528083870193348552888d60608a019782895260808b019960018b5260a08c019b848d5260c081019d8e5260e081019e8f52610100019e8f52835252209a5116906bffffffffffffffffffffffff60a01b91828c5416178b5560018b0192511690825416179055516002880155516003870155868601905161095a81610d9e565b61096381610d9e565b60ff198254169060ff1617905551600585015551600684015551600783015551906008015560055490680100000000000000008210156109f757508060016109ae9201600555610f9c565b819291549060031b9187831b921b191617905582519034825285820152837fa0c2857a854ce2667c00caeabe4e2d455b2a2479ef1448c39d8ac759b41f7d77843393a451908152f35b634e487b7160e01b845260419052602483fd5b634e487b7160e01b845260118252602484fd5b835162461bcd60e51b8152808601879052600c60248201526b1cd95b198818da185b9b995b60a21b6044820152606490fd5b835162461bcd60e51b8152808601879052601060248201526f1e995c9bc81c185c9d1a58da5c185b9d60821b6044820152606490fd5b8391503461010d57610a9636610dbe565b93898c9b9697989a9b94929452856020528c8c2096610ac0600260ff898b01541661063b81610d9e565b610ae28b6104298b610adc8c6003600282015491015490610ecf565b92610ecf565b600588019687548b1115610b6057509487948a948d9e9f9794610b47947ff77bd5386df3abc52822ed4dfe34af16a40feaa1bd73adbe8614943b6165957e9f968f9d6104cc9e8a60089f9a839f9b60018060a01b036001818354169201541691611114565b558660068201558260078201556104a660025442610ecf565b6064915060208f519162461bcd60e51b835282015260096024820152683737ba103732bbb2b960b91b6044820152fd5b50503461010d578160031936011261010d576020906002549051908152f35b9190503461023057602036600319011261023057918280610120945192610bd584610e5f565b80845280602085015280828501528060608501528060808501528060a08501528060c08501528060e08501528061010080950152843581528460205220815193610c1e85610e5f565b81546001600160a01b0390811686526001830154811660208701908152600284015485880190815260038501546060890190815293850154919592939092608089019260ff16610c6d81610d9e565b835260058601549360a08a0194855260068701549560c08b01968752600860078901549860e08d01998a520154988a8c01998a528184519c51168c52511660208b0152519089015251606088015251610cc581610d9e565b60808701525160a08601525160c08501525160e08401525190820152f35b50503461010d578160031936011261010d576020906005549051908152f35b90503461023057602036600319011261023057803590610d2d60018060a01b03600154163314610e26565b8115610d6d5750907fedb9338f4b0faf2b899d2d7f54b90753d2a8ebb34936e381edb91b091c3e45a791600254908060025582519182526020820152a180f35b606490602084519162461bcd60e51b8352820152600b60248201526a7a65726f2077696e646f7760a81b6044820152fd5b60041115610da857565b634e487b7160e01b600052602160045260246000fd5b610140906003190112610e0b576004359060243590604435906064359060843560ff81168103610e0b579060a4359060c4359060e43560ff81168103610e0b579061010435906101243590565b600080fd5b600435906001600160a01b0382168203610e0b57565b15610e2d57565b60405162461bcd60e51b815260206004820152600a60248201526937b7363c9030b236b4b760b11b6044820152606490fd5b610120810190811067ffffffffffffffff821117610e7c57604052565b634e487b7160e01b600052604160045260246000fd5b15610e9957565b60405162461bcd60e51b815260206004820152600e60248201526d6e6f7420696e206469737075746560901b6044820152606490fd5b91908201809211610edc57565b634e487b7160e01b600052601160045260246000fd5b15610ef957565b60405162461bcd60e51b815260206004820152600b60248201526a62616c616e63652073756d60a81b6044820152606490fd5b15610f3357565b60405162461bcd60e51b81526020600482015260066024820152651c185d5cd95960d21b6044820152606490fd5b15610f6857565b60405162461bcd60e51b815260206004820152600c60248201526b1e995c9bc819195c1bdcda5d60a21b6044820152606490fd5b600554811015610fd35760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b15610ff057565b60405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b6044820152606490fd5b600554919060005b8381106110385750505050600090565b61104181610f9c565b9054600391821b1c600052600480602052604060002060018060a01b0380825416908087168083149283611101575b83156110da575b50505061108a575b505050600101611028565b015460ff1661109881610d9e565b600181149081156110c6575b506110b057808061107f565b935090506110be9150610f9c565b9054911b1c90565b600291506110d381610d9e565b14386110a4565b89831614925090826110f1575b5050388080611077565b60018401541614905038806110e7565b925081600185015416828a161492611070565b919a9592979699949098936040519860208a0193845260408a0152606089015260808801526080875260a087019567ffffffffffffffff9188881083891117610e7c576101009088604052895190209860c08101997f19457468657265756d205369676e6564204d6573736167653a0a3332000000008b5260dc820152603c8952019187831090831117610e7c576111d6996111c8986111cd986111bf946040525190209384611328565b909791976113b8565b611328565b909491946113b8565b6001600160a01b0391821690821614928361122a575b505050156111f657565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964207369677360a01b6044820152606490fd5b81929350169116143880806111ec565b60026000541461124b576002600055565b604051633ee5aeb560e01b8152600490fd5b81611266575050565b600080808094819460018060a01b03165af1903d156113225767ffffffffffffffff903d82811161130e5760405192601f8201601f19908116603f01168401908111848210176112fa57604052825260203d92013e5b156112c357565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b634e487b7160e01b82526041600452602482fd5b506112bc565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116113ac57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156113a05780516001600160a01b0381161561139757918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6113c181610d9e565b806113ca575050565b6113d381610d9e565b600181036113ed5760405163f645eedf60e01b8152600490fd5b6113f681610d9e565b600281036114175760405163fce698f760e01b815260048101839052602490fd5b80611423600392610d9e565b1461142b5750565b602490604051906335e2f38360e21b82526004820152fdfea264697066735822122055f966e1104072a1d896ec60d26678ce7a7138ea18b53fa3ec7e20d37ce9957564736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|