@credenza-web3/contracts
Version:
Credenza Contracts
1,592 lines • 107 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "TetherPublicLock",
"sourceName": "contracts/tether-lock/TetherPublicLock.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sendTo",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refund",
"type": "uint256"
}
],
"name": "CancelKey",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "ContractDeployed",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Disable",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refundedAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "GasRefunded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "KeyGranterAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "KeyGranterRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "_newManager",
"type": "address"
}
],
"name": "KeyManagerChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "LockManagerAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "LockManagerRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "NewLockSymbol",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldKeyPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "keyPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "oldTokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "PricingChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "freeTrialLength",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refundPenaltyBasisPoints",
"type": "uint256"
}
],
"name": "RefundPenaltyChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newExpiration",
"type": "uint256"
}
],
"name": "RenewKeyPurchase",
"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": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "transferFeeBasisPoints",
"type": "uint256"
}
],
"name": "TransferFeeChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "lockAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "unlockAddress",
"type": "address"
}
],
"name": "UnlockCallFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdrawal",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "KEY_GRANTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LOCK_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addKeyGranter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addLockManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_approved",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "approveBeneficiary",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "beneficiary",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "cancelAndRefund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "disableLock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "expirationDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_keyOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "expireAndRefundFor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "freeTrialLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasRefundValue",
"outputs": [
{
"internalType": "uint256",
"name": "_refundValue",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "getCancelAndRefundValueFor",
"outputs": [
{
"internalType": "uint256",
"name": "refund",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "getHasValidKey",
"outputs": [
{
"internalType": "bool",
"name": "isValid",
"type": "bool"
}
],
"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": "_account",
"type": "address"
}
],
"name": "getTokenIdFor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "_expirationTimestamps",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "_keyManagers",
"type": "address[]"
}
],
"name": "grantKeys",
"outputs": [],
"stateMutability": "nonpayable",
"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 payable",
"name": "_lockCreator",
"type": "address"
},
{
"internalType": "uint256",
"name": "_expirationDuration",
"type": "uint256"
},
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_keyPrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxNumberOfKeys",
"type": "uint256"
},
{
"internalType": "string",
"name": "_lockName",
"type": "string"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isAlive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isKeyGranter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isLockManager",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "keyManagerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "keyPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxNumberOfKeys",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "publicLockVersion",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "address",
"name": "_referrer",
"type": "address"
},
{
"internalType": "address",
"name": "_keyManager",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "purchase",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "address",
"name": "_referrer",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "purchasePriceFor",
"outputs": [
{
"internalType": "uint256",
"name": "minKeyPrice",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "refundPenaltyBasisPoints",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceLockManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_granter",
"type": "address"
}
],
"name": "revokeKeyGranter",
"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": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_baseTokenURI",
"type": "string"
}
],
"name": "setBaseTokenURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_refundValue",
"type": "uint256"
}
],
"name": "setGasRefundValue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_keyManager",
"type": "address"
}
],
"name": "setKeyManagerOf",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxNumberOfKeys",
"type": "uint256"
}
],
"name": "setMaxNumberOfKeys",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_tetherContractAddress",
"type": "address"
}
],
"name": "setTetherContractAddress",
"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": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tetherContractAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_beneficiary",
"type": "address"
}
],
"name": "updateBeneficiary",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_keyPrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
}
],
"name": "updateKeyPricing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_lockName",
"type": "string"
}
],
"name": "updateLockName",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_lockSymbol",
"type": "string"
}
],
"name": "updateLockSymbol",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_freeTrialLength",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_refundPenaltyBasisPoints",
"type": "uint256"
}
],
"name": "updateRefundPenalty",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60806040526000611c315534801561001657600080fd5b5060405130907f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf90600090a26147a6806100516000396000f3fe6080604052600436106103d25760003560e01c80636eadde43116101fd578063a9059cbb11610118578063c87b56dd116100ab578063d547741f1161007a578063d547741f14610b81578063e985e9c514610ba1578063f0ba604014610bc1578063f3fef3a314610bd6578063f5766b3914610bf657600080fd5b8063c87b56dd14610b05578063d1bbd49c14610b25578063d250348514610b41578063d32bfb6c14610b6157600080fd5b8063b88d4fde116100e7578063b88d4fde14610a90578063ba5a370b14610ab0578063bf4a927014610ad0578063c1c98d0314610af057600080fd5b8063a9059cbb14610a10578063aae4b8f714610a30578063b11d7ec114610a50578063b585a6d514610a7057600080fd5b806395d89b4111610190578063a217fddf1161015f578063a217fddf146109a4578063a22cb465146109b9578063a2e4cd2e146109d9578063a375cb05146109f957600080fd5b806395d89b4114610917578063970aaeb71461092c57806397aa390a146109635780639d76ea581461098357600080fd5b806381a3c943116101cc57806381a3c943146108a25780638be4b870146108c25780638ca2fbad146108d557806391d14854146108f757600080fd5b80636eadde431461082b57806370a082311461084b57806374b6c1061461086b578063782a4ade1461088257600080fd5b806330176e13116102ed57806352b0f6381161028057806356e0d51f1161024f57806356e0d51f146107a75780636207a8da146107be5780636352211e146107d45780636d8ea5b41461080b57600080fd5b806352b0f6381461072757806352d6a8e414610747578063550ef3a814610767578063564aa99d1461078757600080fd5b80634136aa35116102bc5780634136aa351461069557806342842e0e146106b05780634d025fed146106d05780634f6ccce71461070757600080fd5b806330176e131461061457806336568abe1461063457806338af3eed1461065457806339f469861461067557600080fd5b806318160ddd11610365578063248a9ca311610334578063248a9ca3146105845780632af9162a146105b45780632f2ff15d146105d45780632f745c59146105f457600080fd5b806318160ddd1461050b5780631a64851014610521578063231005091461054257806323b872dd1461056457600080fd5b8063097ba333116103a1578063097ba3331461048f5780630aaffd2a146104bd57806310e56973146104dd57806311a4c03a146104f457600080fd5b806301ffc9a7146103de57806306fdde0314610413578063081812fc14610435578063095ea7b31461046d57600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103fe6103f93660046141c0565b610c16565b60405190151581526020015b60405180910390f35b34801561041f57600080fd5b50610428610c27565b60405161040a9190614458565b34801561044157600080fd5b50610455610450366004614184565b610cb6565b6040516001600160a01b03909116815260200161040a565b34801561047957600080fd5b5061048d6104883660046140c0565b610d32565b005b34801561049b57600080fd5b506104af6104aa366004613f17565b610e79565b60405190815260200161040a565b3480156104c957600080fd5b5061048d6104d8366004613e14565b610ec5565b3480156104e957600080fd5b506104af610c845481565b34801561050057600080fd5b506104af610c835481565b34801561051757600080fd5b50610c86546104af565b34801561052d57600080fd5b5061107054610455906001600160a01b031681565b34801561054e57600080fd5b506104af60008051602061473183398151915281565b34801561057057600080fd5b5061048d61057f366004613f7a565b610f49565b34801561059057600080fd5b506104af61059f366004614184565b60009081526097602052604090206001015490565b3480156105c057600080fd5b5061048d6105cf366004613e14565b6111b3565b3480156105e057600080fd5b5061048d6105ef36600461419c565b611236565b34801561060057600080fd5b506104af61060f3660046140c0565b611260565b34801561062057600080fd5b5061048d61062f3660046141f8565b6112e8565b34801561064057600080fd5b5061048d61064f36600461419c565b611329565b34801561066057600080fd5b50610c8754610455906001600160a01b031681565b34801561068157600080fd5b5061048d6106903660046142c1565b6113a7565b3480156106a157600080fd5b5061089a546103fe9060ff1681565b3480156106bc57600080fd5b5061048d6106cb366004613f7a565b611421565b3480156106dc57600080fd5b506104556106eb366004614184565b611073602052600090815260409020546001600160a01b031681565b34801561071357600080fd5b506104af610722366004614184565b61143c565b34801561073357600080fd5b506103fe610742366004613e14565b611483565b34801561075357600080fd5b506104af610762366004613e14565b61149d565b34801561077357600080fd5b5061048d6107823660046141f8565b6114a8565b34801561079357600080fd5b5061048d6107a2366004613e14565b6114e9565b3480156107b357600080fd5b506104af6124025481565b3480156107ca57600080fd5b50611c31546104af565b3480156107e057600080fd5b506104556107ef366004614184565b600090815261107260205260409020546001600160a01b031690565b34801561081757600080fd5b506103fe610826366004613e14565b61156c565b34801561083757600080fd5b5061048d610846366004613e5b565b611638565b34801561085757600080fd5b506104af610866366004613e14565b6117a7565b34801561087757600080fd5b506104af610c855481565b34801561088e57600080fd5b5061048d61089d3660046141f8565b6117ef565b3480156108ae57600080fd5b5061048d6108bd3660046140d2565b61186e565b61048d6108d0366004614250565b611ae8565b3480156108e157600080fd5b506104af60008051602061475183398151915281565b34801561090357600080fd5b506103fe61091236600461419c565b611f06565b34801561092357600080fd5b50610428611f31565b34801561093857600080fd5b506104af610947366004613e14565b6001600160a01b03166000908152611071602052604090205490565b34801561096f57600080fd5b5061048d61097e366004613e30565b611fc4565b34801561098f57600080fd5b506104b154610455906001600160a01b031681565b3480156109b057600080fd5b506104af600081565b3480156109c557600080fd5b5061048d6109d4366004614093565b612028565b3480156109e557600080fd5b5061048d6109f436600461419c565b612100565b348015610a0557600080fd5b506104af6124035481565b348015610a1c57600080fd5b506103fe610a2b3660046140c0565b612298565b348015610a3c57600080fd5b506103fe610a4b366004613e14565b6122c0565b348015610a5c57600080fd5b5061048d610a6b36600461419c565b6122da565b348015610a7c57600080fd5b506103fe610a8b3660046140c0565b61239e565b348015610a9c57600080fd5b5061048d610aab366004613fba565b612462565b348015610abc57600080fd5b5061048d610acb366004613e14565b6124cb565b348015610adc57600080fd5b5061048d610aeb366004614184565b612522565b348015610afc57600080fd5b5061048d6125c6565b348015610b1157600080fd5b50610428610b20366004614184565b612653565b348015610b3157600080fd5b506040516009815260200161040a565b348015610b4d57600080fd5b5061048d610b5c366004613e14565b612762565b348015610b6d57600080fd5b5061048d610b7c366004614184565b6127e5565b348015610b8d57600080fd5b5061048d610b9c36600461419c565b612886565b348015610bad57600080fd5b506103fe610bbc366004613edf565b6128ab565b348015610bcd57600080fd5b5061048d612944565b348015610be257600080fd5b5061048d610bf13660046140c0565b612989565b348015610c0257600080fd5b5061048d610c11366004614184565b612b16565b6000610c2182612b50565b92915050565b6110768054610c359061467b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c619061467b565b8015610cae5780601f10610c8357610100808354040283529160200191610cae565b820191906000526020600020905b815481529060010190602001808311610c9157829003601f168201915b505050505081565b6000818152611072602052604081205482906001600160a01b0316610d105760405162461bcd60e51b815260206004820152600b60248201526a4e4f5f535543485f4b455960a81b60448201526064015b60405180910390fd5b600083815261107460205260409020546001600160a01b031691505b50919050565b61089a5460ff16610d555760405162461bcd60e51b8152600401610d079061457c565b80610d608133612b5b565b80610d825750600081815261107460205260409020546001600160a01b031633145b80610dab575060008181526110726020526040902054610dab906001600160a01b0316336128ab565b610dc75760405162461bcd60e51b8152600401610d07906144bb565b336001600160a01b0384161415610e0f5760405162461bcd60e51b815260206004820152600c60248201526b20a8282927ab22afa9a2a62360a11b6044820152606401610d07565b60008281526110746020908152604080832080546001600160a01b0319166001600160a01b03888116918217909255611072909352818420549151869492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610ebc858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bd492505050565b95945050505050565b610ece336122c0565b80610ee45750610c87546001600160a01b031633145b610f005760405162461bcd60e51b8152600401610d07906144f2565b6001600160a01b038116610f265760405162461bcd60e51b8152600401610d079061446b565b610c8780546001600160a01b0319166001600160a01b0392909216919091179055565b61089a5460ff16610f6c5760405162461bcd60e51b8152600401610d079061457c565b82610f768161156c565b610f925760405162461bcd60e51b8152600401610d0790614494565b81610f9d8133612b5b565b80610fbf5750600081815261107460205260409020546001600160a01b031633145b80610fe8575060008181526110726020526040902054610fe8906001600160a01b0316336128ab565b6110045760405162461bcd60e51b8152600401610d07906144bb565b600083815261107260205260409020546001600160a01b0386811691161461106e5760405162461bcd60e51b815260206004820152601c60248201527f5452414e534645525f46524f4d3a204e4f545f4b45595f4f574e4552000000006044820152606401610d07565b6001600160a01b03841660009081526110716020526040902054156110d55760405162461bcd60e51b815260206004820152601960248201527f524543495049454e545f414c52454144595f4841535f4b4559000000000000006044820152606401610d07565b6001600160a01b0384166110fb5760405162461bcd60e51b8152600401610d079061446b565b836001600160a01b0316856001600160a01b031614156111505760405162461bcd60e51b815260206004820152601060248201526f2a2920a729a322a92faa27afa9a2a62360811b6044820152606401610d07565b61115983612bdf565b6001600160a01b03808616600081815261107160205260408082208290559287168082528382208790559251869392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a45050505050565b6111cb60008051602061475183398151915233611f06565b6111e75760405162461bcd60e51b8152600401610d0790614527565b6111ff60008051602061473183398151915282612886565b6040516001600160a01b038216907f766f6199fea59554b9ff688e413302b9200f85d74811c053c12d945ac6d8dd7a90600090a250565b60008281526097602052604090206001015461125181612c1e565b61125b8383612c28565b505050565b600061126b836117a7565b8210801561128157506001600160a01b03831615155b6112c65760405162461bcd60e51b815260206004820152601660248201527527a7262cafa7a722afa5a2acafa822a92fa7aba722a960511b6044820152606401610d07565b6001600160a01b038316600090815261107160205260409020545b9392505050565b61130060008051602061475183398151915233611f06565b61131c5760405162461bcd60e51b8152600401610d0790614527565b61125b6110788383613cfa565b6001600160a01b03811633146113995760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d07565b6113a38282612cae565b5050565b6113bf60008051602061475183398151915233611f06565b6113db5760405162461bcd60e51b8152600401610d0790614527565b60408051838152602081018390527fd6867bc538320e67d7bdc35860c27c08486eb490b4fd9b820fff18fb28381d3c910160405180910390a16124039190915561240255565b61125b83838360405180602001604052806000815250612462565b6000610c8654821061147f5760405162461bcd60e51b815260206004820152600c60248201526b4f55545f4f465f52414e474560a01b6044820152606401610d07565b5090565b6000610c2160008051602061473183398151915283611f06565b6000610c2182612d15565b6114c060008051602061475183398151915233611f06565b6114dc5760405162461bcd60e51b8152600401610d0790614527565b61125b6110768383613cfa565b61150160008051602061475183398151915233611f06565b61151d5760405162461bcd60e51b8152600401610d0790614527565b61153560008051602061473183398151915282611236565b6040516001600160a01b038216907f684f8a71407db0c334454ebe9c9b288549317893a20b10dc779ec5c118dcd12190600090a250565b6001600160a01b038116600090815261107160205260409020541580159061159357919050565b611070546001600160a01b03161561163057611070546040516370a0823160e01b81526001600160a01b0384811660048301529091169060009082906370a082319060240160206040518083038186803b1580156115f057600080fd5b505afa158015611604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116289190614238565b119392505050565b506000919050565b600054610100900460ff16158080156116585750600054600160ff909116105b806116725750303b158015611672575060005460ff166001145b6116d55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d07565b6000805460ff1916600117905580156116f8576000805461ff0019166101001790555b61170186612d48565b61171461089a805460ff19166001179055565b61172088888787612e1f565b61172a8383612eb2565b611732612ed8565b61173e6103e861240255565b61174788612eea565b6117576380ac58cd60e01b612f72565b801561179d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60006001600160a01b0382166117cf5760405162461bcd60e51b8152600401610d079061446b565b6117d88261156c565b6117e35760006117e6565b60015b60ff1692915050565b61180760008051602061475183398151915233611f06565b6118235760405162461bcd60e51b8152600401610d0790614527565b6118306110778383613cfa565b507f8868e22e84ebf32da89b2ebcb0ac642816304ea3863b257f240df9098719cb978282604051611862929190614429565b60405180910390a15050565b61187733611483565b806118865750611886336122c0565b6119045760405162461bcd60e51b815260206004820152604360248201527f4d6978696e526f6c65733a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204b65794772616e746572206f72204c6f636b4d616e6167657220726064820152626f6c6560e81b608482015260a401610d07565b60005b85811015611adf57600087878381811061193157634e487b7160e01b600052603260045260246000fd5b90506020020160208101906119469190613e14565b9050600086868481811061196a57634e487b7160e01b600052603260045260246000fd5b905060200201359050600085858581811061199557634e487b7160e01b600052603260045260246000fd5b90506020020160208101906119aa9190613e14565b90506001600160a01b0383166119d25760405162461bcd60e51b8152600401610d079061446b565b6001600160a01b0383166000908152611071602052604090205415611a2c5760405162461bcd60e51b815260206004820152601060248201526f414c52454144595f4f574e535f4b455960801b6044820152606401610d07565b610c868054906000611a3d836146b0565b9091555050610c8654611a508482612ff1565b611a5a8183613030565b6040516001600160a01b0383169082907f9d2895c45a420624de863a2f437b022d879f457bf7a829044055a10c5a6fd5e390600090a360405181906001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050508080611ad7906146b0565b915050611907565b50505050505050565b61089a5460ff16611b0b5760405162461bcd60e51b8152600401610d079061457c565b610c8654610c855411611b505760405162461bcd60e51b815260206004820152600d60248201526c1313d0d2d7d4d3d31117d3d555609a1b6044820152606401610d07565b6001600160a01b038516611b765760405162461bcd60e51b8152600401610d079061446b565b6001600160a01b0385166000908152611071602052604090205415611bcf5760405162461bcd60e51b815260206004820152600f60248201526e414c52454144595f4841535f4b455960881b6044820152606401610d07565b610c868054906000611be0836146b0565b9091555050610c8654611bf38682612ff1565b611bfd8185613030565b60405181906001600160a01b038816906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46000611c78878786868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bd492505050565b6104b1549091506000906001600160a01b031615611d2557506104b1546040516323b872dd60e01b8152336004820152306024820152604481018a905289916001600160a01b03169081906323b872dd90606401602060405180830381600087803b158015611ce657600080fd5b505af1158015611cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1e9190614168565b5050611d28565b50345b81811015611d6d5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b6044820152606401610d07565b611c315415611efb576104b1546001600160a01b031615611e21576104b154611c31546040516323b872dd60e01b815230600482015233602482015260448101919091526001600160a01b039091169081906323b872dd90606401602060405180830381600087803b158015611de257600080fd5b505af1158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1a9190614168565b5050611eae565b611c315460405160009133918381818185875af1925050503d8060008114611e65576040519150601f19603f3d011682016040523d82523d6000602084013e611e6a565b606091505b5050905080611eac5760405162461bcd60e51b815260206004820152600e60248201526d2932b33ab732103330b4b632b21760911b6044820152606401610d07565b505b611c31546104b154604080519283526001600160a01b03909116602083015233917f522a883b471164223f18b50f326da8671372b64b4792eac0e63d447e714c3e3b910160405180910390a25b505050505050505050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606110778054611f419061467b565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6d9061467b565b8015611fba5780601f10611f8f57610100808354040283529160200191611fba565b820191906000526020600020905b815481529060010190602001808311611f9d57829003601f168201915b5050505050905090565b611fdc60008051602061475183398151915233611f06565b611ff85760405162461bcd60e51b8152600401610d