761 lines
40 KiB
JSON
761 lines
40 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "TokenRegistry",
|
|
"sourceName": "contracts/tokenization/TokenRegistry.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AccessControlBadConfirmation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "neededRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "AccessControlUnauthorizedAccount",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "EnforcedPause",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ExpectedPause",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidBacking",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidStatus",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "TokenAlreadyRegistered",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "TokenNotFound",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "Paused",
|
|
"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"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "TokenActivated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "string",
|
|
"name": "tokenId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "underlyingAsset",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "issuer",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "TokenRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "reason",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "TokenSuspended",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum TokenRegistry.TokenStatus",
|
|
"name": "oldStatus",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum TokenRegistry.TokenStatus",
|
|
"name": "newStatus",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "TokenUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "Unpaused",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "REGISTRAR_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "activateToken",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "getAllTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "",
|
|
"type": "address[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "getRoleAdmin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getToken",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "tokenId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "underlyingAsset",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "issuer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "backingReserve",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalSupply",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "backedAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum TokenRegistry.TokenStatus",
|
|
"name": "status",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "createdAt",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "updatedAt",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"internalType": "struct TokenRegistry.TokenMetadata",
|
|
"name": "",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "tokenId",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "getTokenByFabricId",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"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": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "isTokenActive",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"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": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "tokenId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "underlyingAsset",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "issuer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "backingReserve",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "registerToken",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "registeredTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"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": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "reason",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "suspendToken",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "tokenIdToAddress",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "tokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "tokenId",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "underlyingAsset",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "issuer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "backingReserve",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalSupply",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "backedAmount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "enum TokenRegistry.TokenStatus",
|
|
"name": "status",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "createdAt",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "updatedAt",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "unpause",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalSupply",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "backedAmount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "updateTokenBacking",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tokenAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "enum TokenRegistry.TokenStatus",
|
|
"name": "newStatus",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "updateTokenStatus",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x6080346200008657601f620018d138819003918201601f19168301916001600160401b038311848410176200008b578084926020946040528339810103126200008657516001600160a01b03811681036200008657620000759060ff19600154166001556200006e81620000a1565b5062000121565b506040516116ed9081620001c48239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200011d57818052816020526040822081835260205260408220600160ff198254161790553391600080516020620018b18339815191528180a4600190565b5090565b6001600160a01b031660008181527f01ddc098da42acdf4176da08ec75800bc0fb2bce2be978b2037bcb0ae696651960205260408120549091907fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092389060ff16620001be57808352826020526040832082845260205260408320600160ff19825416179055600080516020620018b1833981519152339380a4600190565b50509056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146111ee575080630d1ce2d21461116c578063112f43bb146110c1578063248a9ca3146110925780632a5c792a14610fca5780632f2ff15d14610f8b57806330f4ec1914610f3057806336568abe14610ee957806338d5bcd314610e735780633f1ea2cb1461082a5780633f4ba83a146107c057806359770438146105f15780635c975abb146105ce5780638456cb5914610561578063895b327e14610471578063912012be146103f857806391d14854146103ab5780639a0ba2ea14610369578063a217fddf1461034d578063b45673be1461028b578063d547741f1461024a578063e48603391461015c5763f68e95531461011c57600080fd5b346101575760003660031901126101575760206040517fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092388152f35b600080fd5b34610157576020366003190112610157576001600160a01b038061017e611241565b1660005260026020526040600020818154169061019d600182016113f9565b926101aa600283016113f9565b906003830154169161023a6101c1600483016113f9565b60058301549461022560068501549160ff6007870154169361021260096008890154980154986102046040519d8e9d8e61014091815281602082015201906112bd565b8c810360408e0152906112bd565b9160608b015289820360808b01526112bd565b9560a088015260c087015260e08601906112e2565b6101008401526101208301520390f35b3461015757604036600319011261015757610289600435610269611257565b9080600052600060205261028460016040600020015461159e565b611642565b005b34610157576040366003190112610157576102a4611241565b6024356001600160401b038111610157576102c390369060040161126d565b6102ce9291926114ea565b60018060a01b03809216928360005260026020526040600020928354161561033b578260077f5ce2279f84c7510287e041f2df4d2a9f298394b9f6a5a2307df71338737510949401600260ff19825416179055600942910155610336604051928392836114c2565b0390a2005b604051630cbdb7b360e41b8152600490fd5b3461015757600036600319011261015757602060405160008152f35b346101575760203660031901126101575760043560045481101561015757610392602091611372565b905460405160039290921b1c6001600160a01b03168152f35b34610157576040366003190112610157576103c4611257565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b34610157576020366003190112610157576004356001600160401b03811161015757366023820112156101575761043b602091369060248160040135910161132c565b8161044f604051928381519384920161129a565b600390820190815281900382019020546040516001600160a01b039091168152f35b34610157576020366003190112610157576001600160a01b0380610493611241565b166000526002602052604060002090604051906104af826112ef565b8083541682526104c1600184016113f9565b60208301526104d2600284016113f9565b604083015260038301541660608201526104ee600483016113f9565b6080820152600582015460a0820152600682015460c0820152610120600960ff6007850154169361052360e0850195866114b6565b6008810154610100850152015491015251600481101561054b57602090600160405191148152f35b634e487b7160e01b600052602160045260246000fd5b346101575760003660031901126101575761057a611564565b60015460ff81166105bc5760019060ff1916176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b60405163d93c066560e01b8152600490fd5b3461015757600036600319011261015757602060ff600154166040519015158152f35b346101575760203660031901126101575761060a611241565b600061012060405161061b816112ef565b8281526060602082015260606040820152826060820152606060808201528260a08201528260c08201528260e082015282610100820152015260018060a01b031660005260026020526040600020600960405191610678836112ef565b80546001600160a01b03168352610691600182016113f9565b60208401526106a2600282016113f9565b604084015260038101546001600160a01b031660608401526106c6600482016113f9565b6080840152600581015460a0840152600681015460c08401526106f360ff60078301541660e085016114b6565b6008810154610100840152015461012082015260405180916020825260018060a01b0381511660208301526020810151610120610784610741610140938460408801526101608701906112bd565b61075d604086015191601f1992838983030160608a01526112bd565b9060018060a01b0360608701511660808801526080860151908783030160a08801526112bd565b9260a081015160c086015260c081015160e08601526107ac60e08201516101008701906112e2565b610100810151828601520151908301520390f35b34610157576000366003190112610157576107d9611564565b60015460ff8116156108185760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b346101575760a036600319011261015757610843611241565b6024356001600160401b0381116101575761086290369060040161126d565b906044356001600160401b0381116101575761088290369060040161126d565b606435939192916001600160a01b0385168503610157576084356001600160401b038111610157576108b890369060040161126d565b906108c16114ea565b6001600160a01b0388811660009081526002602052604090205416610e6157610935604051916108f0836112ef565b6001600160a01b038a16835261090736868961132c565b936020840194855261091a36888b61132c565b60408501526001600160a01b038a166060850152369161132c565b6080820152600060a0820152600060c0820152600060e0820152426101008201524261012082015260018060a01b038816600052600260205260406000209160018060a01b038251166bffffffffffffffffffffffff60a01b845416178355518051906001600160401b038211610be05781906109b560018601546113bf565b601f8111610e0e575b50602090601f8311600114610d9c57600092610d91575b50508160011b916000199060031b1c19161760018301555b60408101518051906001600160401b038211610be0578190610a1260028601546113bf565b601f8111610d3e575b50602090601f8311600114610ccc57600092610cc1575b50508160011b916000199060031b1c19161760028301555b6003820160018060a01b036060830151166bffffffffffffffffffffffff60a01b82541617905560808101518051906001600160401b038211610be0578190610a9660048601546113bf565b601f8111610c6e575b50602090601f8311600114610c0157600092610bf6575b50508160011b916000199060031b1c19161760048301555b60a0810151600583015560c0810151600683015560e0810151600481101561054b57600991610b03610120926007860161149e565b61010081015160088501550151910155604051818482376003828201908152819003602001902080546001600160a01b0319166001600160a01b0388161790556004549268010000000000000000841015610be057610b898460017f09425fbbc19b8fce1873301532f2e28d3ba7f4d8edc66bef9dd9a9f8e9b6e7af9601600455611372565b81546001600160a01b038a811660039390931b92831b921b19161790556040519182918190833781016000815203902093610bdb60405192839260018060a01b03169760018060a01b031695836114c2565b0390a4005b634e487b7160e01b600052604160045260246000fd5b015190508a80610ab6565b600486016000908152602081209350601f198516905b818110610c565750908460019594939210610c3d575b505050811b016004830155610ace565b015160001960f88460031b161c191690558a8080610c2d565b92936020600181928786015181550195019301610c17565b909150600485016000526020600020601f840160051c810160208510610cba575b90849392915b601f830160051c82018110610cab575050610a9f565b60008155859450600101610c95565b5080610c8f565b015190508a80610a32565b9250600285016000526020600020906000935b601f1984168510610d23576001945083601f19811610610d0a575b505050811b016002830155610a4a565b015160001960f88460031b161c191690558a8080610cfa565b81810151835560209485019460019093019290910190610cdf565b909150600285016000526020600020601f840160051c810160208510610d8a575b90849392915b601f830160051c82018110610d7b575050610a1b565b60008155859450600101610d65565b5080610d5f565b015190508a806109d5565b9250600185016000526020600020906000935b601f1984168510610df3576001945083601f19811610610dda575b505050811b0160018301556109ed565b015160001960f88460031b161c191690558a8080610dca565b81810151835560209485019460019093019290910190610daf565b909150600185016000526020600020601f840160051c810160208510610e5a575b90849392915b601f830160051c82018110610e4b5750506109be565b60008155859450600101610e35565b5080610e2f565b604051633ea7ffd960e11b8152600490fd5b3461015757606036600319011261015757610e8c611241565b604435602435610e9a6114ea565b6001600160a01b03928316600090815260026020526040902080549093161561033b57818111610ed7576005830155600682015542600990910155005b60405163184bc66f60e01b8152600490fd5b3461015757604036600319011261015757610f02611257565b336001600160a01b03821603610f1e5761028990600435611642565b60405163334bd91960e11b8152600490fd5b34610157576020366003190112610157576004356001600160401b03811161015757610f62602091369060040161126d565b80604051928337600390820190815281900382019020546040516001600160a01b039091168152f35b3461015757604036600319011261015757610289600435610faa611257565b90806000526000602052610fc560016040600020015461159e565b6115c4565b3461015757600036600319011261015757604051806004548083526020809301809160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9060005b8682821061107557868661102c8288038361130b565b604051928392818401908285525180915260408401929160005b82811061105557505050500390f35b83516001600160a01b031685528695509381019392810192600101611046565b83546001600160a01b031685529093019260019283019201611016565b346101575760203660031901126101575760043560005260006020526020600160406000200154604051908152f35b34610157576040366003190112610157576110da611241565b602435906004821015610157576110ef6114ea565b60018060a01b03809116918260005260026020526040600020918254161561033b578161116960409260077f2c1d6aed329fb36004ef2c5a06eefbaf62f0c1c80cd210a6e5919c528034b2bc95019261114d8260ff8654169561149e565b60094291015561115f845180946112e2565b60208301906112e2565ba2005b3461015757602036600319011261015757611185611241565b61118d6114ea565b6001600160a01b039081166000818152600260205260409020805491929091161561033b5760078101600160ff198254161790556009429101557f8745618cc29c4ac0cb23d9a7a8d5663f9739c8171e613d3c755e23307f74c106600080a2005b34610157576020366003190112610157576004359063ffffffff60e01b821680920361015757602091637965db0b60e01b8114908115611230575b5015158152f35b6301ffc9a760e01b14905083611229565b600435906001600160a01b038216820361015757565b602435906001600160a01b038216820361015757565b9181601f84011215610157578235916001600160401b038311610157576020838186019501011161015757565b60005b8381106112ad5750506000910152565b818101518382015260200161129d565b906020916112d68151809281855285808601910161129a565b601f01601f1916010190565b90600482101561054b5752565b61014081019081106001600160401b03821117610be057604052565b90601f801991011681019081106001600160401b03821117610be057604052565b9291926001600160401b038211610be05760405191611355601f8201601f19166020018461130b565b829481845281830111610157578281602093846000960137010152565b6004548110156113a95760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156113ef575b60208310146113d957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ce565b9060405191826000825461140c816113bf565b9081845260209460019160018116908160001461147c575060011461143d575b50505061143b9250038361130b565b565b600090815285812095935091905b81831061146457505061143b935082010138808061142c565b8554888401850152948501948794509183019161144b565b9250505061143b94925060ff191682840152151560051b82010138808061142c565b90600481101561054b5760ff80198354169116179055565b600482101561054b5752565b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b3360009081527f01ddc098da42acdf4176da08ec75800bc0fb2bce2be978b2037bcb0ae696651960205260409020547fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092389060ff16156115465750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16156115465750565b80600052600060205260406000203360005260205260ff60406000205416156115465750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461163d57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541660001461163d5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea26469706673582212204f92c508c313f605ee3b38990ac55744615520a5ce4a4c29b507e7e799bfd72e64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
|
|
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146111ee575080630d1ce2d21461116c578063112f43bb146110c1578063248a9ca3146110925780632a5c792a14610fca5780632f2ff15d14610f8b57806330f4ec1914610f3057806336568abe14610ee957806338d5bcd314610e735780633f1ea2cb1461082a5780633f4ba83a146107c057806359770438146105f15780635c975abb146105ce5780638456cb5914610561578063895b327e14610471578063912012be146103f857806391d14854146103ab5780639a0ba2ea14610369578063a217fddf1461034d578063b45673be1461028b578063d547741f1461024a578063e48603391461015c5763f68e95531461011c57600080fd5b346101575760003660031901126101575760206040517fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092388152f35b600080fd5b34610157576020366003190112610157576001600160a01b038061017e611241565b1660005260026020526040600020818154169061019d600182016113f9565b926101aa600283016113f9565b906003830154169161023a6101c1600483016113f9565b60058301549461022560068501549160ff6007870154169361021260096008890154980154986102046040519d8e9d8e61014091815281602082015201906112bd565b8c810360408e0152906112bd565b9160608b015289820360808b01526112bd565b9560a088015260c087015260e08601906112e2565b6101008401526101208301520390f35b3461015757604036600319011261015757610289600435610269611257565b9080600052600060205261028460016040600020015461159e565b611642565b005b34610157576040366003190112610157576102a4611241565b6024356001600160401b038111610157576102c390369060040161126d565b6102ce9291926114ea565b60018060a01b03809216928360005260026020526040600020928354161561033b578260077f5ce2279f84c7510287e041f2df4d2a9f298394b9f6a5a2307df71338737510949401600260ff19825416179055600942910155610336604051928392836114c2565b0390a2005b604051630cbdb7b360e41b8152600490fd5b3461015757600036600319011261015757602060405160008152f35b346101575760203660031901126101575760043560045481101561015757610392602091611372565b905460405160039290921b1c6001600160a01b03168152f35b34610157576040366003190112610157576103c4611257565b600435600052600060205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b34610157576020366003190112610157576004356001600160401b03811161015757366023820112156101575761043b602091369060248160040135910161132c565b8161044f604051928381519384920161129a565b600390820190815281900382019020546040516001600160a01b039091168152f35b34610157576020366003190112610157576001600160a01b0380610493611241565b166000526002602052604060002090604051906104af826112ef565b8083541682526104c1600184016113f9565b60208301526104d2600284016113f9565b604083015260038301541660608201526104ee600483016113f9565b6080820152600582015460a0820152600682015460c0820152610120600960ff6007850154169361052360e0850195866114b6565b6008810154610100850152015491015251600481101561054b57602090600160405191148152f35b634e487b7160e01b600052602160045260246000fd5b346101575760003660031901126101575761057a611564565b60015460ff81166105bc5760019060ff1916176001557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b60405163d93c066560e01b8152600490fd5b3461015757600036600319011261015757602060ff600154166040519015158152f35b346101575760203660031901126101575761060a611241565b600061012060405161061b816112ef565b8281526060602082015260606040820152826060820152606060808201528260a08201528260c08201528260e082015282610100820152015260018060a01b031660005260026020526040600020600960405191610678836112ef565b80546001600160a01b03168352610691600182016113f9565b60208401526106a2600282016113f9565b604084015260038101546001600160a01b031660608401526106c6600482016113f9565b6080840152600581015460a0840152600681015460c08401526106f360ff60078301541660e085016114b6565b6008810154610100840152015461012082015260405180916020825260018060a01b0381511660208301526020810151610120610784610741610140938460408801526101608701906112bd565b61075d604086015191601f1992838983030160608a01526112bd565b9060018060a01b0360608701511660808801526080860151908783030160a08801526112bd565b9260a081015160c086015260c081015160e08601526107ac60e08201516101008701906112e2565b610100810151828601520151908301520390f35b34610157576000366003190112610157576107d9611564565b60015460ff8116156108185760ff19166001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b346101575760a036600319011261015757610843611241565b6024356001600160401b0381116101575761086290369060040161126d565b906044356001600160401b0381116101575761088290369060040161126d565b606435939192916001600160a01b0385168503610157576084356001600160401b038111610157576108b890369060040161126d565b906108c16114ea565b6001600160a01b0388811660009081526002602052604090205416610e6157610935604051916108f0836112ef565b6001600160a01b038a16835261090736868961132c565b936020840194855261091a36888b61132c565b60408501526001600160a01b038a166060850152369161132c565b6080820152600060a0820152600060c0820152600060e0820152426101008201524261012082015260018060a01b038816600052600260205260406000209160018060a01b038251166bffffffffffffffffffffffff60a01b845416178355518051906001600160401b038211610be05781906109b560018601546113bf565b601f8111610e0e575b50602090601f8311600114610d9c57600092610d91575b50508160011b916000199060031b1c19161760018301555b60408101518051906001600160401b038211610be0578190610a1260028601546113bf565b601f8111610d3e575b50602090601f8311600114610ccc57600092610cc1575b50508160011b916000199060031b1c19161760028301555b6003820160018060a01b036060830151166bffffffffffffffffffffffff60a01b82541617905560808101518051906001600160401b038211610be0578190610a9660048601546113bf565b601f8111610c6e575b50602090601f8311600114610c0157600092610bf6575b50508160011b916000199060031b1c19161760048301555b60a0810151600583015560c0810151600683015560e0810151600481101561054b57600991610b03610120926007860161149e565b61010081015160088501550151910155604051818482376003828201908152819003602001902080546001600160a01b0319166001600160a01b0388161790556004549268010000000000000000841015610be057610b898460017f09425fbbc19b8fce1873301532f2e28d3ba7f4d8edc66bef9dd9a9f8e9b6e7af9601600455611372565b81546001600160a01b038a811660039390931b92831b921b19161790556040519182918190833781016000815203902093610bdb60405192839260018060a01b03169760018060a01b031695836114c2565b0390a4005b634e487b7160e01b600052604160045260246000fd5b015190508a80610ab6565b600486016000908152602081209350601f198516905b818110610c565750908460019594939210610c3d575b505050811b016004830155610ace565b015160001960f88460031b161c191690558a8080610c2d565b92936020600181928786015181550195019301610c17565b909150600485016000526020600020601f840160051c810160208510610cba575b90849392915b601f830160051c82018110610cab575050610a9f565b60008155859450600101610c95565b5080610c8f565b015190508a80610a32565b9250600285016000526020600020906000935b601f1984168510610d23576001945083601f19811610610d0a575b505050811b016002830155610a4a565b015160001960f88460031b161c191690558a8080610cfa565b81810151835560209485019460019093019290910190610cdf565b909150600285016000526020600020601f840160051c810160208510610d8a575b90849392915b601f830160051c82018110610d7b575050610a1b565b60008155859450600101610d65565b5080610d5f565b015190508a806109d5565b9250600185016000526020600020906000935b601f1984168510610df3576001945083601f19811610610dda575b505050811b0160018301556109ed565b015160001960f88460031b161c191690558a8080610dca565b81810151835560209485019460019093019290910190610daf565b909150600185016000526020600020601f840160051c810160208510610e5a575b90849392915b601f830160051c82018110610e4b5750506109be565b60008155859450600101610e35565b5080610e2f565b604051633ea7ffd960e11b8152600490fd5b3461015757606036600319011261015757610e8c611241565b604435602435610e9a6114ea565b6001600160a01b03928316600090815260026020526040902080549093161561033b57818111610ed7576005830155600682015542600990910155005b60405163184bc66f60e01b8152600490fd5b3461015757604036600319011261015757610f02611257565b336001600160a01b03821603610f1e5761028990600435611642565b60405163334bd91960e11b8152600490fd5b34610157576020366003190112610157576004356001600160401b03811161015757610f62602091369060040161126d565b80604051928337600390820190815281900382019020546040516001600160a01b039091168152f35b3461015757604036600319011261015757610289600435610faa611257565b90806000526000602052610fc560016040600020015461159e565b6115c4565b3461015757600036600319011261015757604051806004548083526020809301809160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9060005b8682821061107557868661102c8288038361130b565b604051928392818401908285525180915260408401929160005b82811061105557505050500390f35b83516001600160a01b031685528695509381019392810192600101611046565b83546001600160a01b031685529093019260019283019201611016565b346101575760203660031901126101575760043560005260006020526020600160406000200154604051908152f35b34610157576040366003190112610157576110da611241565b602435906004821015610157576110ef6114ea565b60018060a01b03809116918260005260026020526040600020918254161561033b578161116960409260077f2c1d6aed329fb36004ef2c5a06eefbaf62f0c1c80cd210a6e5919c528034b2bc95019261114d8260ff8654169561149e565b60094291015561115f845180946112e2565b60208301906112e2565ba2005b3461015757602036600319011261015757611185611241565b61118d6114ea565b6001600160a01b039081166000818152600260205260409020805491929091161561033b5760078101600160ff198254161790556009429101557f8745618cc29c4ac0cb23d9a7a8d5663f9739c8171e613d3c755e23307f74c106600080a2005b34610157576020366003190112610157576004359063ffffffff60e01b821680920361015757602091637965db0b60e01b8114908115611230575b5015158152f35b6301ffc9a760e01b14905083611229565b600435906001600160a01b038216820361015757565b602435906001600160a01b038216820361015757565b9181601f84011215610157578235916001600160401b038311610157576020838186019501011161015757565b60005b8381106112ad5750506000910152565b818101518382015260200161129d565b906020916112d68151809281855285808601910161129a565b601f01601f1916010190565b90600482101561054b5752565b61014081019081106001600160401b03821117610be057604052565b90601f801991011681019081106001600160401b03821117610be057604052565b9291926001600160401b038211610be05760405191611355601f8201601f19166020018461130b565b829481845281830111610157578281602093846000960137010152565b6004548110156113a95760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156113ef575b60208310146113d957565b634e487b7160e01b600052602260045260246000fd5b91607f16916113ce565b9060405191826000825461140c816113bf565b9081845260209460019160018116908160001461147c575060011461143d575b50505061143b9250038361130b565b565b600090815285812095935091905b81831061146457505061143b935082010138808061142c565b8554888401850152948501948794509183019161144b565b9250505061143b94925060ff191682840152151560051b82010138808061142c565b90600481101561054b5760ff80198354169116179055565b600482101561054b5752565b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b3360009081527f01ddc098da42acdf4176da08ec75800bc0fb2bce2be978b2037bcb0ae696651960205260409020547fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092389060ff16156115465750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff16156115465750565b80600052600060205260406000203360005260205260ff60406000205416156115465750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461163d57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541660001461163d5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea26469706673582212204f92c508c313f605ee3b38990ac55744615520a5ce4a4c29b507e7e799bfd72e64736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|