UNPKG

@animoca/ethereum-contracts-assets

Version:
777 lines 71.4 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC20Mock", "sourceName": "contracts/token/ERC20/mocks/ERC20Mock.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": "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": [], "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": "0x6101206040523480156200001257600080fd5b506040516200394c3803806200394c833981810160405260808110156200003857600080fd5b81019080805160405193929190846401000000008211156200005957600080fd5b9083019060208201858111156200006f57600080fd5b82518660208202830111640100000000821117156200008d57600080fd5b82525081516020918201928201910280838360005b83811015620000bc578181015183820152602001620000a2565b5050505090500160405260200180516040519392919084640100000000821115620000e657600080fd5b908301906020820185811115620000fc57600080fd5b82518660208202830111640100000000821117156200011a57600080fd5b82525081516020918201928201910280838360005b83811015620001495781810151838201526020016200012f565b50505050919091016040818152602084810151948201518284018352600a8452694552433230204d6f636b60b01b8285015282518084018452600381526204532360ec1b92810192909252600080546001600160a01b03191633908117825593519698509096509194929350916012918791879187918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b16608052825162000217906002906020860190620005a7565b5081516200022d906003906020850190620005a7565b507fff0000000000000000000000000000000000000000000000000000000000000060f882901b16610100524660c08190526200026b818562000296565b60e052506200027f92508391505062000320565b506200028c84846200036c565b5050505062000653565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b815181518114620003c4576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b82811462000539576000858281518110620003df57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141562000452576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b60008583815181106200046157fe5b6020026020010151905080600014620004ed57838101848111620004cc576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101620003c8565b508015620005a1576007548181018181116200059c576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b600755505b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620005df57600085556200062a565b82601f10620005fa57805160ff19168380011785556200062a565b828001600101855582156200062a579182015b828111156200062a5782518255916020019190600101906200060d565b50620006389291506200063c565b5090565b5b808211156200063857600081556001016200063d565b60805160601c60a05160601c60c05160e0516101005160f81c61328d620006bf60003980610eac525080610f94525080610ed35280611e0e5250806114df5280612ce7528061303c52508061151a5280612cac5280612d3f5280613012528061309d525061328d6000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c806388d695b21161012a578063b88d4fde116100bd578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610b18578063eb79554914610b88578063f2fde38b14610c0d5761020b565b8063d505accf14610a99578063dd62ed3e14610aea5761020b565b8063b88d4fde146108e5578063c3666c3614610975578063c4c2bfdc14610a89578063cd0d009614610a915761020b565b806398650275116100f9578063986502751461085f578063a457c2d714610867578063a9059cbb14610893578063aa271e1a146108bf5761020b565b806388d695b21461074b5780638da5cb5b1461080d57806395d89b4114610831578063983b2d56146108395761020b565b80633c130d90116101a2578063685731071161017157806368573107146104c457806370a08231146105eb57806373c8a958146106115780637ecebe00146107255761020b565b80633c130d901461039657806340c10f191461039e5780634885b254146103cc578063572b6c051461049e5761020b565b806323b872dd116101de57806323b872dd1461030e578063313ce567146103445780633644e51514610362578063395093511461036a5761020b565b806301ffc9a71461021057806306fdde031461024b578063095ea7b3146102c857806318160ddd146102f4575b600080fd5b6102376004803603602081101561022657600080fd5b50356001600160e01b031916610c33565b604080519115158252519081900360200190f35b610253610dd4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028d578181015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610237600480360360408110156102de57600080fd5b506001600160a01b038135169060200135610e68565b6102fc610e85565b60408051918252519081900360200190f35b6102376004803603606081101561032457600080fd5b506001600160a01b03813581169160208101359091169060400135610e8b565b61034c610eaa565b6040805160ff9092168252519081900360200190f35b6102fc610ece565b6102376004803603604081101561038057600080fd5b506001600160a01b038135169060200135610fba565b610253611128565b6103ca600480360360408110156103b457600080fd5b506001600160a01b038135169060200135611189565b005b610237600480360360608110156103e257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561040d57600080fd5b82018360208201111561041f57600080fd5b8035906020019184602083028401116401000000008311171561044157600080fd5b91939092909160208101903564010000000081111561045f57600080fd5b82018360208201111561047157600080fd5b8035906020019184602083028401116401000000008311171561049357600080fd5b5090925090506111a7565b610237600480360360208110156104b457600080fd5b50356001600160a01b03166114db565b6103ca600480360360408110156104da57600080fd5b8101906020810181356401000000008111156104f557600080fd5b82018360208201111561050757600080fd5b8035906020019184602083028401116401000000008311171561052957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460208302840111640100000000831117156105ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611554945050505050565b6102fc6004803603602081101561060157600080fd5b50356001600160a01b0316611569565b6103ca6004803603606081101561062757600080fd5b81019060208101813564010000000081111561064257600080fd5b82018360208201111561065457600080fd5b8035906020019184602083028401116401000000008311171561067657600080fd5b91939092909160208101903564010000000081111561069457600080fd5b8201836020820111156106a657600080fd5b803590602001918460208302840111640100000000831117156106c857600080fd5b9193909290916020810190356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b509092509050611584565b6102fc6004803603602081101561073b57600080fd5b50356001600160a01b0316611676565b6102376004803603604081101561076157600080fd5b81019060208101813564010000000081111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460208302840111640100000000831117156107b057600080fd5b9193909290916020810190356401000000008111156107ce57600080fd5b8201836020820111156107e057600080fd5b8035906020019184602083028401116401000000008311171561080257600080fd5b509092509050611688565b610815611997565b604080516001600160a01b039092168252519081900360200190f35b6102536119a6565b6103ca6004803603602081101561084f57600080fd5b50356001600160a01b0316611a07565b6103ca611a1e565b6102376004803603604081101561087d57600080fd5b506001600160a01b038135169060200135611a7c565b610237600480360360408110156108a957600080fd5b506001600160a01b038135169060200135611aeb565b610237600480360360208110156108d557600080fd5b50356001600160a01b0316611aff565b610237600480360360808110156108fb57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184600183028401116401000000008311171561096a57600080fd5b509092509050611b14565b6103ca6004803603606081101561098b57600080fd5b8101906020810181356401000000008111156109a657600080fd5b8201836020820111156109b857600080fd5b803590602001918460208302840111640100000000831117156109da57600080fd5b9193909290916020810190356401000000008111156109f857600080fd5b820183602082011115610a0a57600080fd5b80359060200191846020830284011164010000000083111715610a2c57600080fd5b919390929091602081019035640100000000811115610a4a57600080fd5b820183602082011115610a5c57600080fd5b80359060200191846020830284011164010000000083111715610a7e57600080fd5b509092509050611cb5565b610253611dfd565b6102fc611e0c565b6103ca600480360360e0811015610aaf57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e30565b6102fc60048036036040811015610b0057600080fd5b506001600160a01b03813581169160200135166120af565b6103ca60048036036020811015610b2e57600080fd5b810190602081018135640100000000811115610b4957600080fd5b820183602082011115610b5b57600080fd5b80359060200191846001830284011164010000000083111715610b7d57600080fd5b5090925090506120da565b61023760048036036060811015610b9e57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610bce57600080fd5b820183602082011115610be057600080fd5b80359060200191846001830284011164010000000083111715610c0257600080fd5b5090925090506120f6565b6103ca60048036036020811015610c2357600080fd5b50356001600160a01b0316612295565b60006001600160e01b031982167f01ffc9a7000000000000000000000000000000000000000000000000000000001480610c9657506001600160e01b031982167f36372b0700000000000000000000000000000000000000000000000000000000145b80610cca57506001600160e01b031982167fa219a02500000000000000000000000000000000000000000000000000000000145b80610cfe57506001600160e01b031982167f3c130d9000000000000000000000000000000000000000000000000000000000145b80610d3257506001600160e01b031982167f9d07518600000000000000000000000000000000000000000000000000000000145b80610d6657506001600160e01b031982167fc05327e600000000000000000000000000000000000000000000000000000000145b80610d9a57506001600160e01b031982167f53f41a9700000000000000000000000000000000000000000000000000000000145b80610dce57506001600160e01b031982167f9d8ff7da00000000000000000000000000000000000000000000000000000000145b92915050565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610e5d5780601f10610e3257610100808354040283529160200191610e5d565b820191906000526020600020905b815481529060010190602001808311610e4057829003601f168201915b505050505090505b90565b6000610e7c610e75612306565b8484612310565b50600192915050565b60075490565b6000610ea0610e98612306565b8585856123cd565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000467f00000000000000000000000000000000000000000000000000000000000000008114610f92576002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152610f8d93859391929091830182828015610f835780601f10610f5857610100808354040283529160200191610f83565b820191906000526020600020905b815481529060010190602001808311610f6657829003601f168201915b5050505050612402565b610fb4565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b60006001600160a01b038316611017576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b6000611021612306565b6001600160a01b0380821660009081526006602090815260408083209389168352929052205490915083156110d2578084018181116110a7576040805162461bcd60e51b815260206004820152601960248201527f45524332303a20616c6c6f77616e6365206f766572666c6f7700000000000000604482015290519081900360640190fd5b6001600160a01b038084166000908152600660209081526040808320938a1683529290522081905590505b846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3506001949350505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e5d5780601f10610e3257610100808354040283529160200191610e5d565b611199611194612306565b61248c565b6111a382826124f9565b5050565b6000838281146111fe576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6001600160a01b0387166000908152600560205260408120549080805b8481146114105760008a8a8381811061123057fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b031614156112aa576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008989848181106112b857fe5b905060200201359050806000146113bb57848101858111611320576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b03168e6001600160a01b03161461135f576001600160a01b03831660009081526005602052604090208054830190556113b9565b868211156113b4576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b03168d6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505060010161121b565b5081158015906114205750808214155b1561149a5781830383811061147c576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038b16600090815260056020526040902090820190555b60006114a4612306565b9050806001600160a01b03168b6001600160a01b0316146114ca576114ca8b828561261c565b5060019a9950505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610dce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b61155f611194612306565b6111a3828261272b565b6001600160a01b031660009081526005602052604090205490565b61159461158f612306565b61295b565b8483811480156115a357508082145b6115f4576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b81811461166c5761166488888381811061160d57fe5b905060200201356001600160a01b031685858481811061162957fe5b9050602002013588888581811061163c57fe5b905060200201356001600160a01b03166001600160a01b0316612a1f9092919063ffffffff16565b6001016115f7565b5050505050505050565b60016020526000908152604090205481565b6000838281146116df576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60006116e9612306565b6001600160a01b03811660009081526005602052604081205491925080805b8581146118fd5760008b8b8381811061171d57fe5b905060200201356001600160a01b0316905060006001600160a01b0316816001600160a01b03161415611797576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008a8a848181106117a557fe5b905060200201359050806000146118a85784810185811161180d576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b809550826001600160a01b0316886001600160a01b03161461184c576001600160a01b03831660009081526005602052604090208054830190556118a6565b868211156118a1576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b938101935b505b816001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050600101611708565b50811580159061190d5750808214155b1561198757818303838110611969576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b038516600090815260056020526040902090820190555b5060019998505050505050505050565b6000546001600160a01b031690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e5d5780601f10610e3257610100808354040283529160200191610e5d565b611a1261158f612306565b611a1b81612a9f565b50565b6000611a28612306565b9050611a338161248c565b6001600160a01b038116600081815260086020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b60006001600160a01b038316611ad9576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b610e7c611ae4612306565b848461261c565b6000610e7c611af8612306565b8484612aeb565b60086020526000908152604090205460ff1681565b600080611b1f612306565b9050611b2d818888886123cd565b611b3f866001600160a01b0316612c52565b15611ca8577f4fc35859000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc35859838a8989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b158015611c2057600080fd5b505af1158015611c34573d6000803e3d6000fd5b505050506040513d6020811015611c4a57600080fd5b50516001600160e01b03191614611ca8576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b5060019695505050505050565b611cc061158f612306565b848381148015611ccf57508082145b611d20576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b81811461166c57858582818110611d3657fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a85818110611d6157fe5b905060200201356001600160a01b0316878786818110611d7d57fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015611dda57600080fd5b505af1158015611dee573d6000803e3d6000fd5b50505050806001019050611d23565b6060611e07612c58565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b038716611e8b576040805162461bcd60e51b815260206004820152601960248201527f45524332303a207a65726f2061646472657373206f776e657200000000000000604482015290519081900360640190fd5b83421115611ee0576040805162461bcd60e51b815260206004820152601560248201527f45524332303a2065787069726564207065726d69740000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380881660008181526001602081815260408084208054938401905580517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280820195909552948b166060850152608084018a905260a084019190915260c08084018990528451808503909101815260e09093019093528151919092012090611f72610ece565b8260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612026573d6000803e3d6000fd5b505050602060405103519050896001600160a01b0316816001600160a01b031614612098576040805162461bcd60e51b815260206004820152601560248201527f45524332303a20696e76616c6964207065726d69740000000000000000000000604482015290519081900360640190fd5b6120a38a8a8a612310565b50505050505050505050565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6120e561158f612306565b6120f16004838361318e565b505050565b600080612101612306565b905061210e818787612aeb565b612120866001600160a01b0316612c52565b15612289577f4fc35859000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b0316634fc3585983848989896040518663ffffffff1660e01b815260040180866001600160a01b03168152602001856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561220157600080fd5b505af1158015612215573d6000803e3d6000fd5b505050506040513d602081101561222b57600080fd5b50516001600160e01b03191614612289576040805162461bcd60e51b815260206004820152601760248201527f45524332303a207472616e736665722072656675736564000000000000000000604482015290519081900360640190fd5b50600195945050505050565b6122a061158f612306565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000611e07612c9c565b6001600160a01b03821661236b576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a207a65726f2061646472657373207370656e6465720000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6123d8838383612aeb565b836001600160a01b0316836001600160a01b0316146123fc576123fc83858361261c565b50505050565b8051602091820120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81850152808201929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606083015260808201939093523060a0808301919091528351808303909101815260c0909101909252815191012090565b6001600160a01b03811660009081526008602052604090205460ff16611a1b576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038216612554576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b60075481156125d6578082018181116125b4576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007556001600160a01b03831660009081526005602052604090208054830190555b6040805183815290516001600160a01b038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b6001600160a01b03808416600090815260066020908152604080832093861683529290522054600019811480159061265357508115155b156126da578181038181106126af576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6001600160a01b03808616600090815260066020908152604080832093881683529290522081905590505b826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a350505050565b815181518114612782576040805162461bcd60e51b815260206004820152601a60248201527f45524332303a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b6000805b8281146128f057600085828151811061279b57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561280d576040805162461bcd60e51b815260206004820152601360248201527f45524332303a207a65726f206164647265737300000000000000000000000000604482015290519081900360640190fd5b600085838151811061281b57fe5b60200260200101519050806000146128a557838101848111612884576040805162461bcd60e51b815260206004820152601660248201527f45524332303a2076616c756573206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600090815260056020526040902080548301905593505b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050600101612786565b5080156123fc57600754818101818111612951576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20737570706c79206f766572666c6f7700000000000000000000604482015290519081900360640190fd5b6007555050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561299457600080fd5b505afa1580156129a8573d6000803e3d6000fd5b505050506040513d60208110156129be57600080fd5b50516001600160a01b03828116911614611a1b576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526120f1908490612dfc565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b6001600160a01b038216612b46576040805162461bcd60e51b815260206004820152601660248201527f45524332303a20746f207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b8015612c02576001600160a01b038316600090815260056020526040902054818103818110612bbc576040805162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b031614612bff576001600160a01b038086166000908152600560205260408082208490559186168152208054840190555b50505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b3b151590565b6060612c62613004565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b60003381612ca8613167565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480612d1b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15612d29579150610e659050565b6001600160a01b0382163214801590612de857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015612dbb57600080fd5b505afa158015612dcf573d6000803e3d6000fd5b505050506040513d6020811015612de557600080fd5b50515b15612df6579150610e659050565b50905090565b81612e0f6001600160a01b038216612c52565b612e60576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b60208310612ebb57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612e7e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612f1d576040519150601f19603f3d011682016040523d82523d6000602084013e612f22565b606091505b50915091508115612fa157805115612f9c57808060200190516020811015612f4957600080fd5b5051612f9c576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b612ffd565b8051612ff4576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b5050505050565b366000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681148061307057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b156130875761307d613173565b9250925050613163565b6001600160a01b038116321480159061314d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d66130d2613167565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b15801561312057600080fd5b505afa158015613134573d6000803e3d6000fd5b505050506040513d602081101561314a57600080fd5b50515b1561315a5761307d613173565b60003692509250505b9091565b60131936013560601c90565b366000613186601319830182848161322f565b915091509091565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826131c4576000855561320a565b82601f106131dd5782800160ff1982351617855561320a565b8280016001018555821561320a579182015b8281111561320a5782358255916020019190600101906131ef565b5061321692915061321a565b5090565b5b80821115613216576000815560010161321b565b6000808585111561323e578182fd5b8386111561324a578182fd5b505082019391909203915056fea2646970667358221220a39d7e7f1342826d94dae927e622993a0c873a506b052cadfff037a398b30bc964736f6c63430007060033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061020b5760003560e01c806388d695b21161012a578063b88d4fde116100bd578063d505accf1161008c578063e0df5b6f11610071578063e0df5b6f14610b18578063eb79554914610b88578063f2fde38b14610c0d5761020b565b8063d505accf14610a99578063dd62ed3e14610aea5761020b565b8063b88d4fde146108e5578063c3666c3614610975578063c4c2bfdc14610a89578063cd0d009614610a915761020b565b806398650275116100f9578063986502751461085f578063a457c2d714610867578063a9059cbb14610893578063aa271e1a146108bf5761020b565b806388d695b21461074b5780638da5cb5b1461080d57806395d89b4114610831578063983b2d56146108395761020b565b80633c130d90116101a2578063685731071161017157806368573107146104c457806370a08231146105eb57806373c8a958146106115780637ecebe00146107255761020b565b80633c130d901461039657806340c10f191461039e5780634885b254146103cc578063572b6c051461049e5761020b565b806323b872dd116101de57806323b872dd1461030e578063313ce567146103445780633644e51514610362578063395093511461036a5761020b565b806301ffc9a71461021057806306fdde031461024b578063095ea7b3146102c857806318160ddd146102f4575b600080fd5b6102376004803603602081101561022657600080fd5b50356001600160e01b031916610c33565b604080519115158252519081900360200190f35b610253610dd4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028d578181015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610237600480360360408110156102de57600080fd5b506001600160a01b038135169060200135610e68565b6102fc610e85565b60408051918252519081900360200190f35b6102376004803603606081101561032457600080fd5b506001600160a01b03813581169160208101359091169060400135610e8b565b61034c610eaa565b6040805160ff9092168252519081900360200190f35b6102fc610ece565b6102376004803603604081101561038057600080fd5b506001600160a01b038135169060200135610fba565b610253611128565b6103ca600480360360408110156103b457600080fd5b506001600160a01b038135169060200135611189565b005b610237600480360360608110156103e257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561040d57600080fd5b82018360208201111561041f57600080fd5b8035906020019184602083028401116401000000008311171561044157600080fd5b91939092909160208101903564010000000081111561045f57600080fd5b82018360208201111561047157600080fd5b8035906020019184602083028401116401000000008311171561049357600080fd5b5090925090506111a7565b610237600480360360208110156104b457600080fd5b50356001600160a01b03166114db565b6103ca600480360360408110156104da57600080fd5b8101906020810181356401000000008111156104f557600080fd5b82018360208201111561050757600080fd5b8035906020019184602083028401116401000000008311171561052957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460208302840111640100000000831117156105ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611554945050505050565b6102fc6004803603602081101561060157600080fd5b50356001600160a01b0316611569565b6103ca6004803603606081101561062757600080fd5b81019060208101813564010000000081111561064257600080fd5b82018360208201111561065457600080fd5b8035906020019184602083028401116401000000008311171561067657600080fd5b91939092909160208101903564010000000081111561069457600080fd5b8201836020820111156106a657600080fd5b803590602001918460208302840111640100000000831117156106c857600080fd5b9193909290916020810190356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b509092509050611584565b6102fc6004803603602081101561073b57600080fd5b50356001600160a01b0316611676565b6102376004803603604081101561076157600080fd5b81019060208101813564010000000081111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460208302840111640100000000831117156107b057600080fd5b9193909290916020810190356401000000008111156107ce57600080fd5b8201836020820111156107e057600080fd5b8035906020019184602083028401116401000000008311171561080257600080fd5b509092509050611688565b610815611997565b604080516001600160a01b039092168252519081900360200190f35b6102536119a6565b6103ca6004803603602081101561084f57600080fd5b50356001600160a01b0316611a07565b6103ca611a1e565b6102376004803603604081101561087d57600080fd5b506001600160a01b038135169060200135611a7c565b610237600480360360408110156108a957600080fd5b506001600160a01b038135169060200135611aeb565b610237600480360360208110156108d557600080fd5b50356001600160a01b0316611aff565b610237600480360360