@animoca/ethereum-contracts-assets
Version:
Base assets contracts
532 lines (531 loc) • 43.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC721SimpleMock",
"sourceName": "contracts/token/ERC721/mocks/ERC721SimpleMock.sol",
"abi": [
{
"inputs": [
{
"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": "_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": "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": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"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": "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": "",
"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": "tokenId",
"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": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"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": "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": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60c060405234801561001057600080fd5b5060405161200c38038061200c8339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b03191633908117825560405190918491849184918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606091821b811660a05291901b166080526100a7816100af565b5050506100fb565b6001600160a01b038116600081815260056020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b60805160601c60a05160601c611eca61014260003980610b6852806119bf5280611d1a525080610ba352806119845280611a175280611cf05280611d7b5250611eca6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806373c8a958116100d8578063aa271e1a1161008c578063c4c2bfdc11610066578063c4c2bfdc146106de578063e985e9c51461075b578063f2fde38b1461078957610177565b8063aa271e1a146104de578063b88d4fde14610504578063c3666c36146105ca57610177565b8063983b2d56116100bd578063983b2d561461048257806398650275146104a8578063a22cb465146104b057610177565b806373c8a958146103665780638da5cb5b1461047a57610177565b806342842e0e1161012f578063572b6c0511610114578063572b6c05146102eb5780636352211e1461031157806370a082311461032e57610177565b806342842e0e1461029857806342966c68146102ce57610177565b8063095ea7b311610160578063095ea7b31461020857806323b872dd1461023657806340c10f191461026c57610177565b806301ffc9a71461017c578063081812fc146101cf575b600080fd5b6101bb6004803603602081101561019257600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166107af565b604080519115158252519081900360200190f35b6101ec600480360360208110156101e557600080fd5b503561084a565b604080516001600160a01b039092168252519081900360200190f35b6102346004803603604081101561021e57600080fd5b506001600160a01b0381351690602001356108e9565b005b6102346004803603606081101561024c57600080fd5b506001600160a01b03813581169160208101359091169060400135610af0565b6102346004803603604081101561028257600080fd5b506001600160a01b038135169060200135610b12565b610234600480360360608110156102ae57600080fd5b506001600160a01b03813581169160208101359091169060400135610b30565b610234600480360360208110156102e457600080fd5b5035610b4d565b6101bb6004803603602081101561030157600080fd5b50356001600160a01b0316610b64565b6101ec6004803603602081101561032757600080fd5b5035610bdd565b6103546004803603602081101561034457600080fd5b50356001600160a01b0316610c47565b60408051918252519081900360200190f35b6102346004803603606081101561037c57600080fd5b81019060208101813564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460208302840111640100000000831117156103cb57600080fd5b9193909290916020810190356401000000008111156103e957600080fd5b8201836020820111156103fb57600080fd5b8035906020019184602083028401116401000000008311171561041d57600080fd5b91939092909160208101903564010000000081111561043b57600080fd5b82018360208201111561044d57600080fd5b8035906020019184602083028401116401000000008311171561046f57600080fd5b509092509050610cc0565b6101ec610db2565b6102346004803603602081101561049857600080fd5b50356001600160a01b0316610dc2565b610234610dd6565b610234600480360360408110156104c657600080fd5b506001600160a01b0381351690602001351515610e34565b6101bb600480360360208110156104f457600080fd5b50356001600160a01b0316610f15565b6102346004803603608081101561051a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561055557600080fd5b82018360208201111561056757600080fd5b8035906020019184600183028401116401000000008311171561058957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f2a945050505050565b610234600480360360608110156105e057600080fd5b8101906020810181356401000000008111156105fb57600080fd5b82018360208201111561060d57600080fd5b8035906020019184602083028401116401000000008311171561062f57600080fd5b91939092909160208101903564010000000081111561064d57600080fd5b82018360208201111561065f57600080fd5b8035906020019184602083028401116401000000008311171561068157600080fd5b91939092909160208101903564010000000081111561069f57600080fd5b8201836020820111156106b157600080fd5b803590602001918460208302840111640100000000831117156106d357600080fd5b509092509050610f3e565b6106e6611086565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610720578181015183820152602001610708565b50505050905090810190601f16801561074d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561077157600080fd5b506001600160a01b0381358116916020013516611095565b6102346004803603602081101561079f57600080fd5b50356001600160a01b03166110c3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061084257507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b90505b919050565b6000818152600260205260408120546001600160a01b0381166108b4576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b600160a01b8116156108df5750506000818152600460205260409020546001600160a01b0316610845565b6000915050610845565b6000818152600260205260409020548061094a576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b806001600160a01b0384811690821614156109ac576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b6109bd816109b8611134565b61113e565b610a0e576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b6001600160a01b038416610a4857600160a01b821615610a435760008381526002602052604090206001600160a01b03821690555b610aa9565b600160a01b8217808314610a685760008481526002602052604090208190555b50600083815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386161790555b82846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b610b0d83838360405180602001604052806000815250600061118c565b505050565b610b22610b1d611134565b611550565b610b2c82826115bd565b5050565b610b0d83838360405180602001604052806000815250600161118c565b610b58610b1d611134565b610b61816116d7565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061084257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6000818152600260205260408120546001600160a01b038116610842576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60006001600160a01b038216610ca4576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090205490565b610cd0610ccb611134565b6117a0565b848381148015610cdf57508082145b610d30576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114610da857610da0888883818110610d4957fe5b905060200201356001600160a01b0316858584818110610d6557fe5b90506020020135888885818110610d7857fe5b905060200201356001600160a01b03166001600160a01b03166118649092919063ffffffff16565b600101610d33565b5050505050505050565b6000546001600160a01b03165b90565b610dcd610ccb611134565b610b61816118e4565b6000610de0611134565b9050610deb81611550565b6001600160a01b038116600081815260056020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b6000610e3e611134565b9050806001600160a01b0316836001600160a01b03161415610ea7576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b6001600160a01b03818116600081815260016020908152604080832094881680845294825291829020805460ff1916871515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b60056020526000908152604090205460ff1681565b610f3884848484600161118c565b50505050565b610f49610ccb611134565b848381148015610f5857508082145b610fa9576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114610da857858582818110610fbf57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a85818110610fea57fe5b905060200201356001600160a01b031687878681811061100657fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b50505050806001019050610fac565b6060611090611930565b905090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6110ce610ccb611134565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000611090611974565b6000816001600160a01b0316836001600160a01b0316148061118557506001600160a01b0380841660009081526001602090815260408083209386168352929052205460ff165b9392505050565b6001600160a01b0384166111e7576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220746f207a65726f0000000000000000604482015290519081900360640190fd5b60006111f1611134565b905060006111ff878361113e565b6000868152600260205260409020549091506001600160a01b0388811690821614611271576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a206e6f6e2d6f776e6564204e46540000000000000000000000604482015290519081900360640190fd5b8161130257600160a01b8116158015906112b157506000868152600460205260409020546001600160a01b03166112a6611134565b6001600160a01b0316145b611302576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b60008681526002602052604090206001600160a01b0380891691829055891614611356576001600160a01b038089166000908152600360205260408082208054600019019055918916815220805460010190555b85876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48380156113b157506113b1876001600160a01b0316611ad4565b15610da8577f150b7a02000000000000000000000000000000000000000000000000000000006001600160a01b03881663150b7a026113ee611134565b8b8a8a6040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611461578181015183820152602001611449565b50505050905090810190601f16801561148e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156114b057600080fd5b505af11580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614610da8576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220726566757365640000000000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16610b61576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038216611618576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206d696e7420746f207a65726f000000000000000000000000604482015290519081900360640190fd5b60008181526002602052604090205415611679576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206578697374696e67204e4654000000000000000000000000604482015290519081900360640190fd5b60008181526002602090815260408083206001600160a01b03861690819055808452600390925280832080546001019055518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000818152600260205260409020546001600160a01b038116611741576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60008281526002602090815260408083208390556001600160a01b0384168084526003909252808320805460001901905551849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d957600080fd5b505afa1580156117ed573d6000803e3d6000fd5b505050506040513d602081101561180357600080fd5b50516001600160a01b03828116911614610b61576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b0d908490611ada565b6001600160a01b038116600081815260056020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b606061193a611ce2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b60003381611980611e45565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806119f357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15611a01579150610dbf9050565b6001600160a01b0382163214801590611ac057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611a9357600080fd5b505afa158015611aa7573d6000803e3d6000fd5b505050506040513d6020811015611abd57600080fd5b50515b15611ace579150610dbf9050565b50905090565b3b151590565b81611aed6001600160a01b038216611ad4565b611b3e576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b60208310611b9957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611b5c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bfb576040519150601f19603f3d011682016040523d82523d6000602084013e611c00565b606091505b50915091508115611c7f57805115611c7a57808060200190516020811015611c2757600080fd5b5051611c7a576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b611cdb565b8051611cd2576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b5050505050565b366000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811480611d4e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15611d6557611d5b611e51565b9250925050611e41565b6001600160a01b0381163214801590611e2b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d6611db0611e45565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611dfe57600080fd5b505afa158015611e12573d6000803e3d6000fd5b505050506040513d6020811015611e2857600080fd5b50515b15611e3857611d5b611e51565b60003692509250505b9091565b60131936013560601c90565b366000611e646013198301828481611e6c565b915091509091565b60008085851115611e7b578182fd5b83861115611e87578182fd5b505082019391909203915056fea2646970667358221220b2ef6418b94bdfe285caf22219e59b2474ff7bad614f44b0a8a56628a0a96f2964736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101775760003560e01c806373c8a958116100d8578063aa271e1a1161008c578063c4c2bfdc11610066578063c4c2bfdc146106de578063e985e9c51461075b578063f2fde38b1461078957610177565b8063aa271e1a146104de578063b88d4fde14610504578063c3666c36146105ca57610177565b8063983b2d56116100bd578063983b2d561461048257806398650275146104a8578063a22cb465146104b057610177565b806373c8a958146103665780638da5cb5b1461047a57610177565b806342842e0e1161012f578063572b6c0511610114578063572b6c05146102eb5780636352211e1461031157806370a082311461032e57610177565b806342842e0e1461029857806342966c68146102ce57610177565b8063095ea7b311610160578063095ea7b31461020857806323b872dd1461023657806340c10f191461026c57610177565b806301ffc9a71461017c578063081812fc146101cf575b600080fd5b6101bb6004803603602081101561019257600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166107af565b604080519115158252519081900360200190f35b6101ec600480360360208110156101e557600080fd5b503561084a565b604080516001600160a01b039092168252519081900360200190f35b6102346004803603604081101561021e57600080fd5b506001600160a01b0381351690602001356108e9565b005b6102346004803603606081101561024c57600080fd5b506001600160a01b03813581169160208101359091169060400135610af0565b6102346004803603604081101561028257600080fd5b506001600160a01b038135169060200135610b12565b610234600480360360608110156102ae57600080fd5b506001600160a01b03813581169160208101359091169060400135610b30565b610234600480360360208110156102e457600080fd5b5035610b4d565b6101bb6004803603602081101561030157600080fd5b50356001600160a01b0316610b64565b6101ec6004803603602081101561032757600080fd5b5035610bdd565b6103546004803603602081101561034457600080fd5b50356001600160a01b0316610c47565b60408051918252519081900360200190f35b6102346004803603606081101561037c57600080fd5b81019060208101813564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460208302840111640100000000831117156103cb57600080fd5b9193909290916020810190356401000000008111156103e957600080fd5b8201836020820111156103fb57600080fd5b8035906020019184602083028401116401000000008311171561041d57600080fd5b91939092909160208101903564010000000081111561043b57600080fd5b82018360208201111561044d57600080fd5b8035906020019184602083028401116401000000008311171561046f57600080fd5b509092509050610cc0565b6101ec610db2565b6102346004803603602081101561049857600080fd5b50356001600160a01b0316610dc2565b610234610dd6565b610234600480360360408110156104c657600080fd5b506001600160a01b0381351690602001351515610e34565b6101bb600480360360208110156104f457600080fd5b50356001600160a01b0316610f15565b6102346004803603608081101561051a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561055557600080fd5b82018360208201111561056757600080fd5b8035906020019184600183028401116401000000008311171561058957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f2a945050505050565b610234600480360360608110156105e057600080fd5b8101906020810181356401000000008111156105fb57600080fd5b82018360208201111561060d57600080fd5b8035906020019184602083028401116401000000008311171561062f57600080fd5b91939092909160208101903564010000000081111561064d57600080fd5b82018360208201111561065f57600080fd5b8035906020019184602083028401116401000000008311171561068157600080fd5b91939092909160208101903564010000000081111561069f57600080fd5b8201836020820111156106b157600080fd5b803590602001918460208302840111640100000000831117156106d357600080fd5b509092509050610f3e565b6106e6611086565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610720578181015183820152602001610708565b50505050905090810190601f16801561074d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561077157600080fd5b506001600160a01b0381358116916020013516611095565b6102346004803603602081101561079f57600080fd5b50356001600160a01b03166110c3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061084257507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b90505b919050565b6000818152600260205260408120546001600160a01b0381166108b4576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b600160a01b8116156108df5750506000818152600460205260409020546001600160a01b0316610845565b6000915050610845565b6000818152600260205260409020548061094a576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b806001600160a01b0384811690821614156109ac576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b6109bd816109b8611134565b61113e565b610a0e576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b6001600160a01b038416610a4857600160a01b821615610a435760008381526002602052604090206001600160a01b03821690555b610aa9565b600160a01b8217808314610a685760008481526002602052604090208190555b50600083815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386161790555b82846001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b610b0d83838360405180602001604052806000815250600061118c565b505050565b610b22610b1d611134565b611550565b610b2c82826115bd565b5050565b610b0d83838360405180602001604052806000815250600161118c565b610b58610b1d611134565b610b61816116d7565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061084257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316149050919050565b6000818152600260205260408120546001600160a01b038116610842576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60006001600160a01b038216610ca4576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090205490565b610cd0610ccb611134565b6117a0565b848381148015610cdf57508082145b610d30576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114610da857610da0888883818110610d4957fe5b905060200201356001600160a01b0316858584818110610d6557fe5b90506020020135888885818110610d7857fe5b905060200201356001600160a01b03166001600160a01b03166118649092919063ffffffff16565b600101610d33565b5050505050505050565b6000546001600160a01b03165b90565b610dcd610ccb611134565b610b61816118e4565b6000610de0611134565b9050610deb81611550565b6001600160a01b038116600081815260056020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b6000610e3e611134565b9050806001600160a01b0316836001600160a01b03161415610ea7576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a2073656c662d617070726f76616c0000000000000000000000604482015290519081900360640190fd5b6001600160a01b03818116600081815260016020908152604080832094881680845294825291829020805460ff1916871515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b60056020526000908152604090205460ff1681565b610f3884848484600161118c565b50505050565b610f49610ccb611134565b848381148015610f5857508082145b610fa9576040805162461bcd60e51b815260206004820152601a60248201527f5265636f763a20696e636f6e73697374656e7420617272617973000000000000604482015290519081900360640190fd5b60005b818114610da857858582818110610fbf57fe5b905060200201356001600160a01b03166001600160a01b03166323b872dd308a8a85818110610fea57fe5b905060200201356001600160a01b031687878681811061100657fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050600060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b50505050806001019050610fac565b6060611090611930565b905090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6110ce610ccb611134565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000611090611974565b6000816001600160a01b0316836001600160a01b0316148061118557506001600160a01b0380841660009081526001602090815260408083209386168352929052205460ff165b9392505050565b6001600160a01b0384166111e7576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220746f207a65726f0000000000000000604482015290519081900360640190fd5b60006111f1611134565b905060006111ff878361113e565b6000868152600260205260409020549091506001600160a01b0388811690821614611271576040805162461bcd60e51b815260206004820152601560248201527f4552433732313a206e6f6e2d6f776e6564204e46540000000000000000000000604482015290519081900360640190fd5b8161130257600160a01b8116158015906112b157506000868152600460205260409020546001600160a01b03166112a6611134565b6001600160a01b0316145b611302576040805162461bcd60e51b815260206004820152601b60248201527f4552433732313a206e6f6e2d617070726f7665642073656e6465720000000000604482015290519081900360640190fd5b60008681526002602052604090206001600160a01b0380891691829055891614611356576001600160a01b038089166000908152600360205260408082208054600019019055918916815220805460010190555b85876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48380156113b157506113b1876001600160a01b0316611ad4565b15610da8577f150b7a02000000000000000000000000000000000000000000000000000000006001600160a01b03881663150b7a026113ee611134565b8b8a8a6040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611461578181015183820152602001611449565b50505050905090810190601f16801561148e5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156114b057600080fd5b505af11580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614610da8576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a207472616e7366657220726566757365640000000000000000604482015290519081900360640190fd5b6001600160a01b03811660009081526005602052604090205460ff16610b61576040805162461bcd60e51b815260206004820152601860248201527f4d696e746572526f6c653a206e6f742061204d696e7465720000000000000000604482015290519081900360640190fd5b6001600160a01b038216611618576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206d696e7420746f207a65726f000000000000000000000000604482015290519081900360640190fd5b60008181526002602052604090205415611679576040805162461bcd60e51b815260206004820152601460248201527f4552433732313a206578697374696e67204e4654000000000000000000000000604482015290519081900360640190fd5b60008181526002602090815260408083206001600160a01b03861690819055808452600390925280832080546001019055518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000818152600260205260409020546001600160a01b038116611741576040805162461bcd60e51b815260206004820152601860248201527f4552433732313a206e6f6e2d6578697374696e67204e46540000000000000000604482015290519081900360640190fd5b60008281526002602090815260408083208390556001600160a01b0384168084526003909252808320805460001901905551849291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d957600080fd5b505afa1580156117ed573d6000803e3d6000fd5b505050506040513d602081101561180357600080fd5b50516001600160a01b03828116911614610b61576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b0d908490611ada565b6001600160a01b038116600081815260056020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b606061193a611ce2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935050505090565b60003381611980611e45565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806119f357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b15611a01579150610dbf9050565b6001600160a01b0382163214801590611ac057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d682846040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611a9357600080fd5b505afa158015611aa7573d6000803e3d6000fd5b505050506040513d6020811015611abd57600080fd5b50515b15611ace579150610dbf9050565b50905090565b3b151590565b81611aed6001600160a01b038216611ad4565b611b3e576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b60208310611b9957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611b5c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611bfb576040519150601f19603f3d011682016040523d82523d6000602084013e611c00565b606091505b50915091508115611c7f57805115611c7a57808060200190516020811015611c2757600080fd5b5051611c7a576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b611cdb565b8051611cd2576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b5050505050565b366000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811480611d4e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15611d6557611d5b611e51565b9250925050611e41565b6001600160a01b0381163214801590611e2b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e60125d6611db0611e45565b836040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b031681526020019250505060206040518083038186803b158015611dfe57600080fd5b505afa158015611e12573d6000803e3d6000fd5b505050506040513d6020811015611e2857600080fd5b50515b15611e3857611d5b611e51565b60003692509250505b9091565b60131936013560601c90565b366000611e646013198301828481611e6c565b915091509091565b60008085851115611e7b578182fd5b83861115611e87578182fd5b505082019391909203915056fea2646970667358221220b2ef6418b94bdfe285caf22219e59b2474ff7bad614f44b0a8a56628a0a96f2964736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}