@animoca/ethereum-contracts-assets
Version:
Base assets contracts
844 lines • 77.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC20BurnableMock",
"sourceName": "contracts/token/ERC20/mocks/ERC20BurnableMock.sol",
"abi": [
{
"inputs": [
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "contract IForwarderRegistry",
"name": "forwarderRegistry",
"type": "address"
},
{
"internalType": "address",
"name": "universalForwarder",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "MinterAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "MinterRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "owners",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "batchBurnFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "batchMint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "batchTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address[]",
"name": "recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
}
],
"name": "batchTransferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deploymentChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "forwarder",
"type": "address"
}
],
"name": "isTrustedForwarder",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "msgData",
"outputs": [
{
"internalType": "bytes",
"name": "ret",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "recoverERC20s",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "contracts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
}
],
"name": "recoverERC721s",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "tokenURI_",
"type": "string"
}
],
"name": "setTokenURI",
"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": "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": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6101206040523480156200001257600080fd5b5060405162003e6038038062003e60833981810160405260808110156200003857600080fd5b81019080805160405193929190846401000000008211156200005957600080fd5b9083019060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b82525081516020918201928201910280838360005b83811015620000bc578181015183820152602001620000a2565b5050505090500160405260200180516040519392919084640100000000821115620000e657600080fd5b908301906020820185811115620000fc57600080fd5b82518660208202830111640100000000821117156200011a57600080fd5b82525081516020918201928201910280838360005b83811015620001495781810151838201526020016200012f565b50505050919091016040818152602084810151948201518284018352600a8452694552433230204d6f636b60b01b8285015282518084018452600381526204532360ec1b92810192909252600080546001600160a01b03191633908117825593519698509096509194929350916012918491849184918a918a918a9182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b1660805282516200021c906002906020860190620005b0565b50815162000232906003906020850190620005b0565b507fff0000000000000000000000000000000000000000000000000000000000000060f882901b16610100524660c08190526200027081856200029f565b60e05250620002889550869450506200032992505050565b5062000295848462000375565b505050506200065c565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b815181518114620003cd576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b82811462000542576000858281518110620003e857fe5b6020026020010151905060006001600160a01b0316816001600160a01b031614156200045b576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b60008583815181106200046a57fe5b6020026020010151905080600014620004f657838101848111620004d5576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101620003d1565b508015620005aa57600754818101818111620005a5576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b600755505b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620005e8576000855562000633565b82601f106200060357805160ff191683800117855562000633565b8280016001018555821562000633579182015b828111156200063357825182559160200191906001019062000616565b506200064192915062000645565b5090565b5b8082111562000641576000815560010162000646565b60805160601c60a05160601c60c05160e0516101005160f81c613798620006c860003980610f2552508061100d525080610f4c5280611eae52508061157352806131f952806135475250806115ae52806131be5280613251528061351d52806135a852506137986000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c80637ecebe0011610145578063b88d4fde116100bd578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610c74578063eb79554914610ce4578063f2fde38b14610d695761025c565b8063d505accf14610bf5578063dd62ed3e14610c465761025c565b8063b88d4fde14610a41578063c3666c3614610ad1578063c4c2bfdc14610be5578063cd0d009614610bed5761025c565b8063983b2d5611610114578063a457c2d7116100f9578063a457c2d7146109c3578063a9059cbb146109ef578063aa271e1a14610a1b5761025c565b8063983b2d561461099557806398650275146109bb5761025c565b80637ecebe001461088157806388d695b2146108a75780638da5cb5b1461096957806395d89b411461098d5761025c565b80633c130d90116101d8578063572b6c05116101a757806370a082311161018c57806370a082311461071b57806373c8a9581461074157806379cc6790146108555761025c565b8063572b6c05146105ce57806368573107146105f45761025c565b80633c130d90146104a957806340c10f19146104b157806342966c68146104df5780634885b254146104fc5761025c565b80631b9a75291161022f578063313ce56711610214578063313ce567146104575780633644e51514610475578063395093511461047d5761025c565b80631b9a75291461035f57806323b872dd146104215761025c565b806301ffc9a71461026157806306fdde031461029c578063095ea7b31461031957806318160ddd14610345575b600080fd5b6102886004803603602081101561027757600080fd5b50356001600160e01b031916610d8f565b604080519115158252519081900360200190f35b6102a4610dd3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102de5781810151838201526020016102c6565b50505050905090810190601f16801561030b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561032f57600080fd5b506001600160a01b038135169060200135610e67565b61034d610e84565b60408051918252519081900360200190f35b6102886004803603604081101561037557600080fd5b81019060208101813564010000000081111561039057600080fd5b8201836020820111156103a257600080fd5b803590602001918460208302840111640100000000831117156103c457600080fd5b9193909290916020810190356401000000008111156103e257600080fd5b8201836020820111156103f457600080fd5b8035906020019184602083028401116401000000008311171561041657600080fd5b509092509050610e8a565b6102886004803603606081101561043757600080fd5b506001600160a01b03813581169160208101359091169060400135610f04565b61045f610f23565b6040805160ff9092168252519081900360200190f35b61034d610f47565b6102886004803603604081101561049357600080fd5b506001600160a01b038135169060200135611033565b6102a46111a1565b6104dd600480360360408110156104c757600080fd5b506001600160a01b038135169060200135611202565b005b610288600480360360208110156104f557600080fd5b5035611220565b6102886004803603606081101561051257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561053d57600080fd5b82018360208201111561054f57600080fd5b8035906020019184602083028401116401000000008311171561057157600080fd5b91939092909160208101903564010000000081111561058f57600080fd5b8201836020820111156105a157600080fd5b803590602001918460208302840111640100000000831117156105c357600080fd5b50909250905061123b565b610288600480360360208110156105e457600080fd5b50356001600160a01b031661156f565b6104dd6004803603604081101561060a57600080fd5b81019060208101813564010000000081111561062557600080fd5b82018360208201111561063757600080fd5b8035906020019184602083028401116401000000008311171561065957600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156106a957600080fd5b8201836020820111156106bb57600080fd5b803590602001918460208302840111640100000000831117156106dd57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115e8945050505050565b61034d6004803603602081101561073157600080fd5b50356001600160a01b03166115fd565b6104dd6004803603606081101561075757600080fd5b81019060208101813564010000000081111561077257600080fd5b82018360208201111561078457600080fd5b803590602001918460208302840111640100000000831117156107a657600080fd5b9193909290916020810190356401000000008111156107c457600080fd5b8201836020820111156107d657600080fd5b803590602001918460208302840111640100000000831117156107f857600080fd5b91939092909160208101903564010000000081111561081657600080fd5b82018360208201111561082857600080fd5b8035906020019184602083028401116401000000008311171561084a57600080fd5b509092509050611618565b6102886004803603604081101561086b57600080fd5b506001600160a01b03813516906020013561170a565b61034d6004803603602081101561089757600080fd5b50356001600160a01b0316611716565b610288600480360360408110156108bd57600080fd5b8101906020810181356401000000008111156108d857600080fd5b8201836020820111156108ea57600080fd5b8035906020019184602083028401116401000000008311171561090c57600080fd5b91939092909160208101903564010000000081111561092a57600080fd5b82018360208201111561093c57600080fd5b8035906020019184602083028401116401000000008311171561095e57600080fd5b509092509050611728565b610971611a37565b604080516001600160a01b039092168252519081900360200190f35b6102a4611a46565b6104dd600480360360208110156109ab57600080fd5b50356001600160a01b0316611aa7565b6104dd611abe565b610288600480360360408110156109d957600080fd5b506001600160a01b038135169060200135611b1c565b61028860048036036040811015610a0557600080fd5b506001600160a01b038135169060200135611b8b565b61028860048036036020811015610a3157600080fd5b50356001600160a01b0316611b9f565b61028860048036036080811015610a5757600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135640100000000811115610a9257600080fd5b820183602082011115610aa457600080fd5b80359060200191846001830284011164010000000083111715610ac657600080fd5b509092509050611bb4565b6104dd60048036036060811015610ae757600080fd5b810190602081018135640100000000811115610b0257600080fd5b820183602082011115610b1457600080fd5b80359060200191846020830284011164010000000083111715610b3657600080fd5b919390929091602081019035640100000000811115610b5457600080fd5b820183602082011115610b6657600080fd5b80359060200191846020830284011164010000000083111715610b8857600080fd5b919390929091602081019035640100000000811115610ba657600080fd5b820183602082011115610bb857600080fd5b80359060200191846020830284011164010000000083111715610bda57600080fd5b509092509050611d55565b6102a4611e9d565b61034d611eac565b6104dd600480360360e0811015610c0b57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611ed0565b61034d60048036036040811015610c5c57600080fd5b506001600160a01b038135811691602001351661214f565b6104dd60048036036020811015610c8a57600080fd5b810190602081018135640100000000811115610ca557600080fd5b820183602082011115610cb757600080fd5b80359060200191846001830284011164010000000083111715610cd957600080fd5b50909250905061217a565b61028860048036036060811015610cfa57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610d2a57600080fd5b820183602082011115610d3c57600080fd5b80359060200191846001830284011164010000000083111715610d5e57600080fd5b509092509050612196565b6104dd60048036036020811015610d7f57600080fd5b50356001600160a01b0316612335565b60006001600160e01b031982167f20c07ed1000000000000000000000000000000000000000000000000000000001480610dcd5750610dcd826123a6565b92915050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610e5c5780601f10610e3157610100808354040283529160200191610e5c565b820191906000526020600020905b815481529060010190602001808311610e3f57829003601f168201915b505050505090505b90565b6000610e7b610e74612543565b848461254d565b50600192915050565b60075490565b6000610ef98585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201919091525061260a92505050565b506001949350505050565b6000610f19610f11612543565b8585856127c6565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000467f0000000000000000000000000000000000000000000000000000000000000000811461100b576002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815261100693859391929091830182828015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b815481529060010190602001808311610fdf57829003601f168201915b50505050506127fb565b61102d565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60006001600160a01b038316611090576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b600061109a612543565b6001600160a01b03808216600090815260066020908152604080832093891683529290522054909150831561114b57808401818111611120576040805162461bcd60e51b815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f7700000000000000604482015290519081900360640190fd5b6001600160a01b038084166000908152600660209081526040808320938a1683529290522081905590505b846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3506001949350505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e5c5780601f10610e3157610100808354040283529160200191610e5c565b61121261120d612543565b612885565b61121c82826128f2565b5050565b600061123361122d612543565b83612a15565b506001919050565b600083828114611292576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6001600160a01b0387166000908152600560205260408120549080805b8481146114a45760008a8a838181106112c457fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b0316141561133e576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b600089898481811061134c57fe5b9050602002013590508060001461144f578481018581116113b4576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b03168e6001600160a01b0316146113f3576001600160a01b038316600090815260056020526040902080548301905561144d565b86821115611448576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350506001016112af565b5081158015906114b45750808214155b1561152e57818303838110611510576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038b16600090815260056020526040902090820190555b6000611538612543565b9050806001600160a01b03168b6001600160a01b03161461155e5761155e8b8285612af4565b5060019a9950505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610dcd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6115f361120d612543565b61121c8282612c03565b6001600160a01b031660009081526005602052604090205490565b611628611623612543565b612e33565b84838114801561163757508082145b611688576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114611700576116f88888838181106116a157fe5b905060200201356001600160a01b03168585848181106116bd57fe5b905060200201358888858181106116d057fe5b905060200201356001600160a01b03166001600160a01b0316612ef79092919063ffffffff16565b60010161168b565b5050505050505050565b6000610e7b8383612f77565b60016020526000908152604090205481565b60008382811461177f576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000611789612543565b6001600160a01b03811660009081526005602052604081205491925080805b85811461199d5760008b8b838181106117bd57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611837576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008a8a8481811061184557fe5b90506020020135905080600014611948578481018581116118ad576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b0316886001600160a01b0316146118ec576001600160a01b0383166000908152600560205260409020805483019055611946565b86821115611941576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350506001016117a8565b5081158015906119ad5750808214155b15611a2757818303838110611a09576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038516600090815260056020526040902090820190555b5060019998505050505050505050565b6000546001600160a01b031690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e5c5780601f10610e3157610100808354040283529160200191610e5c565b611ab2611623612543565b611abb81612fb1565b50565b6000611ac8612543565b9050611ad381612885565b6001600160a01b038116600081815260086020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b60006001600160a01b038316611b79576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b610e7b611b84612543565b8484612af4565b6000610e7b611b98612543565b8484612ffd565b60086020526000908152604090205460ff1681565b600080611bbf612543565b9050611bcd818888886127c6565b611bdf866001600160a01b0316613164565b15611d48577f4fc35859000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc35859838a8989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015611cc057600080fd5b505af1158015611cd4573d6000803e3d6000fd5b505050506040513d6020811015611cea57600080fd5b50516001600160e01b03191614611d48576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b5060019695505050505050565b611d60611623612543565b848381148015611d6f57508082145b611dc0576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b81811461170057858582818110611dd657fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a85818110611e0157fe5b905060200201356001600160a01b0316878786818110611e1d57fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015611e7a57600080fd5b505af1158015611e8e573d6000803e3d6000fd5b50505050806001019050611dc3565b6060611ea761316a565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038716611f2b576040805162461bcd60e51b815260206004820152601960248201527f45524332303a207a65726f2061646472657373206f776e657200000000000000604482015290519081900360640190fd5b83421115611f80576040805162461bcd60e51b815260206004820152601560248201527f45524332303a2065787069726564207065726d69740000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380881660008181526001602081815260408084208054938401905580517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280820195909552948b166060850152608084018a905260a084019190915260c08084018990528451808503909101815260e09093019093528151919092012090612012610f47565b8260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156120c6573d6000803e3d6000fd5b505050602060405103519050896001600160a01b0316816001600160a01b031614612138576040805162461bcd60e51b815260206004820152601560248201527f45524332303a20696e76616c6964207065726d69740000000000000000000000604482015290519081900360640190fd5b6121438a8a8a61254d565b50505050505050505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b612185611623612543565b61219160048383613699565b505050565b6000806121a1612543565b90506121ae818787612ffd565b6121c0866001600160a01b0316613164565b15612329577f4fc35859000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc3585983848989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b1580156122a157600080fd5b505af11580156122b5573d6000803e3d6000fd5b505050506040513d60208110156122cb57600080fd5b50516001600160e01b03191614612329576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b50600195945050505050565b612340611623612543565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60006001600160e01b031982167f01ffc9a700000000000000000000000000000000000000000000000000000000148061240957506001600160e01b031982167f36372b0700000000000000000000000000000000000000000000000000000000145b8061243d57506001600160e01b031982167fa219a02500000000000000000000000000000000000000000000000000000000145b8061247157506001600160e01b031982167f3c130d9000000000000000000000000000000000000000000000000000000000145b806124a557506001600160e01b031982167f9d07518600000000000000000000000000000000000000000000000000000000145b806124d957506001600160e01b031982167fc05327e600000000000000000000000000000000000000000000000000000000145b8061250d57506001600160e01b031982167f53f41a9700000000000000000000000000000000000000000000000000000000145b80610dcd5750506001600160e01b0319167f9d8ff7da000000000000000000000000000000000000000000000000000000001490565b6000611ea76131ae565b6001600160a01b0382166125a8576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b815181518114612661576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b600061266b612543565b90506000805b8381146127ae57600086828151811061268657fe5b60200260200101519050600086838151811061269e57fe5b602002602001015190508060001461273f576001600160a01b038216600090815260056020526040902054818103818110612720576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526005602052604090205550928301925b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3846001600160a01b0316826001600160a01b0316146127a4576127a4828683612af4565b5050600101612671565b5080156127bf576007805482900390555b5050505050565b6127d1838383612ffd565b836001600160a01b0316836001600160a01b0316146127f5576127f5838583612af4565b50505050565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b03811660009081526008602052604090205460ff16611abb576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b03821661294d576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b60075481156129cf578082018181116129ad576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007556001600160a01b03831660009081526005602052604090208054830190555b6040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b8015612aaf576001600160a01b038216600090815260056020526040902054818103818110612a8b576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038416600090815260056020526040902055506007805482900390555b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038084166000908152600660209081526040808320938616835292905220546000198114801590612b2b57508115155b15612bb257818103818110612b87576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6001600160a01b03808616600090815260066020908152604080832093881683529290522081905590505b826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050565b815181518114612c5a576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b828114612dc8576000858281518110612c7357fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612ce5576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b6000858381518110612cf357fe5b6020026020010151905080600014612d7d57838101848111612d5c576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101612c5e565b5080156127f557600754818101818111612e29576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007555050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e6c57600080fd5b505afa158015612e80573d6000803e3d6000fd5b505050506040513d6020811015612e9657600080fd5b50516001600160a01b03828116911614611abb576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261219190849061330e565b612f818282612a15565b6000612f8b612543565b9050806001600160a01b0316836001600160a01b03161461219157612191838284612af4565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b6001600160a01b038216613058576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b8015613114576001600160a01b0383166000908152600560205260409020548181038181106130ce576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031614613111576001600160a01b038086166000908152600560205260408082208490559186168152208054840190555b50505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3b151590565b606061317461350f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b600033816131ba613672565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061322d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b1561323b579150610e649050565b6001600160a01b03821632148015906132fa57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b1580156132cd57600080fd5b505afa1580156132e1573d6000803e3d6000fd5b505050506040513d60208110156132f757600080fd5b50515b15613308579150610e649050565b50905090565b816133216001600160a01b038216613164565b613372576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b602083106133cd57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613390565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461342f576040519150601f19603f3d011682016040523d82523d6000602084013e613434565b606091505b509150915081156134b3578051156134ae5780806020019051602081101561345b57600080fd5b50516134ae576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b6127bf565b8051613506576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b366000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681148061357b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156135925761358861367e565b925092505061366e565b6001600160a01b038116321480159061365857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d66135dd613672565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561362b57600080fd5b505afa15801561363f573d6000803e3d6000fd5b505050506040513d602081101561365557600080fd5b50515b156136655761358861367e565b60003692509250505b9091565b60131936013560601c90565b366000613691601319830182848161373a565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826136cf5760008555613715565b82601f106136e85782800160ff19823516178555613715565b82800160010185558215613715579182015b828111156137155782358255916020019190600101906136fa565b50613721929150613725565b5090565b5b808211156137215760008155600101613726565b60008085851115613749578182fd5b83861115613755578182fd5b505082019391909203915056fea2646970667358221220b964924cb162c88a271b9b1dcfd853f1682e107b2ac9020df787f34f3d9c776364736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061025c5760003560e01c80637ecebe0011610145578063b88d4fde116100bd578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610c74578063eb79554914610ce4578063f2fde38b14610d695761025c565b8063d505accf14610bf5578063dd62ed3e14610c465761025c565b8063b88d4fde14610a41578063c3666c3614610ad1578063c4c2bfdc14610be5578063cd0d009614610bed5761025c565b8063983b2d5611610114578063a457c2d7116100f9578063a457c2d7146109c3578063a9059cbb146109ef578063aa271e1a14610a1b5761025c565b8063983b2d561461099557806398650275146109bb5761025c565b80637ecebe001461088157806388d695b2146108a75780638da5cb