@perp/hottub-deployments
Version:
Perpetual Protocol Hot Tub contract artifacts (ABIs) and deployed addresses
732 lines • 50.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "TestERC20",
"sourceName": "contracts/test/TestERC20.sol",
"abi": [
{
"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": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MINTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PAUSER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "decimal",
"type": "uint8"
}
],
"name": "__TestERC20_init",
"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": "amount",
"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": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burnWithoutApproval",
"outputs": [],
"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": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getRoleMember",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleMemberCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantAdminRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter",
"type": "address"
}
],
"name": "setMinter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "ratio",
"type": "uint256"
}
],
"name": "setTransferFeeRatio",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"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": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061227b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806379cc67901161011a578063a9059cbb116100ad578063d53913931161007c578063d539139314610837578063d547741f1461083f578063dd62ed3e1461086b578063e63ab1e914610899578063fca3b5aa146108a1576101fb565b8063a9059cbb1461069a578063aa28fea7146106c6578063c634b78e146107f4578063ca15c8731461081a576101fb565b806391d14854116100e957806391d148541461063257806395d89b411461065e578063a217fddf14610666578063a457c2d71461066e576101fb565b806379cc6790146105a25780637fae3b33146105ce5780638456cb59146105eb5780639010d07c146105f3576101fb565b806339509351116101925780634cd88b76116101615780634cd88b761461041f578063540ba01d146105485780635c975abb1461057457806370a082311461057c576101fb565b806339509351146103a25780633f4ba83a146103ce57806340c10f19146103d657806342966c6814610402576101fb565b8063248a9ca3116101ce578063248a9ca31461030d5780632f2ff15d1461032a578063313ce5671461035857806336568abe14610376576101fb565b806306fdde0314610200578063095ea7b31461027d57806318160ddd146102bd57806323b872dd146102d7575b600080fd5b6102086108c7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b03813516906020013561095d565b604080519115158252519081900360200190f35b6102c561097b565b60408051918252519081900360200190f35b6102a9600480360360608110156102ed57600080fd5b506001600160a01b03813581169160208101359091169060400135610981565b6102c56004803603602081101561032357600080fd5b50356109c4565b6103566004803603604081101561034057600080fd5b50803590602001356001600160a01b03166109d9565b005b610360610a45565b6040805160ff9092168252519081900360200190f35b6103566004803603604081101561038c57600080fd5b50803590602001356001600160a01b0316610a4e565b6102a9600480360360408110156103b857600080fd5b506001600160a01b038135169060200135610aaf565b610356610b02565b610356600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610b61565b6103566004803603602081101561041857600080fd5b5035610bc0565b6103566004803603604081101561043557600080fd5b810190602081018135600160201b81111561044f57600080fd5b82018360208201111561046157600080fd5b803590602001918460018302840111600160201b8311171561048257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104d457600080fd5b8201836020820111156104e657600080fd5b803590602001918460018302840111600160201b8311171561050757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd4945050505050565b6103566004803603604081101561055e57600080fd5b506001600160a01b038135169060200135610c82565b6102a9610c8c565b6102c56004803603602081101561059257600080fd5b50356001600160a01b0316610c95565b610356600480360360408110156105b857600080fd5b506001600160a01b038135169060200135610cb0565b610356600480360360208110156105e457600080fd5b5035610d05565b610356610d0b565b6106166004803603604081101561060957600080fd5b5080359060200135610d68565b604080516001600160a01b039092168252519081900360200190f35b6102a96004803603604081101561064857600080fd5b50803590602001356001600160a01b0316610d87565b610208610d9f565b6102c5610e00565b6102a96004803603604081101561068457600080fd5b506001600160a01b038135169060200135610e05565b6102a9600480360360408110156106b057600080fd5b506001600160a01b038135169060200135610e6d565b610356600480360360608110156106dc57600080fd5b810190602081018135600160201b8111156106f657600080fd5b82018360208201111561070857600080fd5b803590602001918460018302840111600160201b8311171561072957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460018302840111600160201b831117156107ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff169150610e819050565b6103566004803603602081101561080a57600080fd5b50356001600160a01b0316610f3f565b6102c56004803603602081101561083057600080fd5b5035610f4a565b6102c5610f61565b6103566004803603604081101561085557600080fd5b50803590602001356001600160a01b0316610f73565b6102c56004803603604081101561088157600080fd5b506001600160a01b0381358116916020013516610fcc565b6102c5610ff7565b610356600480360360208110156108b757600080fd5b50356001600160a01b0316611009565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109535780601f1061092857610100808354040283529160200191610953565b820191906000526020600020905b81548152906001019060200180831161093657829003601f168201915b5050505050905090565b600061097161096a611021565b8484611025565b5060015b92915050565b60675490565b600061015f546000146109b1576000606461015f5484028161099f57fe5b0490506109ac8582611111565b909103905b6109bc84848461120d565b949350505050565b60009081526033602052604090206002015490565b6000828152603360205260409020600201546109fc906109f7611021565b610d87565b610a375760405162461bcd60e51b815260040180806020018281038252602f815260200180611f35602f913960400191505060405180910390fd5b610a41828261128f565b5050565b606a5460ff1690565b610a56611021565b6001600160a01b0316816001600160a01b031614610aa55760405162461bcd60e51b815260040180806020018281038252602f8152602001806121ed602f913960400191505060405180910390fd5b610a4182826112f8565b6000610971610abc611021565b84610afd8560666000610acd611021565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611361565b611025565b610b1c60008051602061208d8339815191526109f7611021565b610b575760405162461bcd60e51b8152600401808060200182810382526039815260200180611f866039913960400191505060405180910390fd5b610b5f6113bb565b565b610b7b6000805160206121078339815191526109f7611021565b610bb65760405162461bcd60e51b81526004018080602001828103825260368152602001806120ad6036913960400191505060405180910390fd5b610a41828261145b565b610bd1610bcb611021565b82611111565b50565b600054610100900460ff1680610bed5750610bed61154d565b80610bfb575060005460ff16155b610c365760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015610c61576000805460ff1961ff0019909116610100171660011790555b610c6b838361155e565b8015610c7d576000805461ff00191690555b505050565b610a418282611111565b60c95460ff1690565b6001600160a01b031660009081526065602052604090205490565b6000610ce7826040518060600160405280602481526020016120e360249139610ce086610cdb611021565b610fcc565b9190611627565b9050610cfb83610cf5611021565b83611025565b610c7d8383611111565b61015f55565b610d2560008051602061208d8339815191526109f7611021565b610d605760405162461bcd60e51b81526004018080602001828103825260378152602001806121916037913960400191505060405180910390fd5b610b5f6116be565b6000828152603360205260408120610d809083611741565b9392505050565b6000828152603360205260408120610d80908361174d565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109535780601f1061092857610100808354040283529160200191610953565b600081565b6000610971610e12611021565b84610afd856040518060600160405280602581526020016121c86025913960666000610e3c611021565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611627565b6000610971610e7a611021565b8484611762565b600054610100900460ff1680610e9a5750610e9a61154d565b80610ea8575060005460ff16155b610ee35760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015610f0e576000805460ff1961ff0019909116610100171660011790555b610f18848461155e565b610f21826118bf565b600061015f558015610f39576000805461ff00191690555b50505050565b610bd1600082610a37565b6000818152603360205260408120610975906118d5565b60008051602061210783398151915281565b600082815260336020526040902060020154610f91906109f7611021565b610aa55760405162461bcd60e51b81526004018080602001828103825260308152602001806120076030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b60008051602061208d83398151915281565b610bd1600080516020612107833981519152826109d9565b3390565b6001600160a01b03831661106a5760405162461bcd60e51b815260040180806020018281038252602481526020018061216d6024913960400191505060405180910390fd5b6001600160a01b0382166110af5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fbf6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166111565760405162461bcd60e51b81526004018080602001828103825260218152602001806121276021913960400191505060405180910390fd5b611162826000836118e0565b61119f81604051806060016040528060228152602001611f64602291396001600160a01b0385166000908152606560205260409020549190611627565b6001600160a01b0383166000908152606560205260409020556067546111c590826118eb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061121a848484611762565b61128584611226611021565b610afd85604051806060016040528060288152602001612065602891396001600160a01b038a16600090815260666020526040812090611264611021565b6001600160a01b031681526020810191909152604001600020549190611627565b5060019392505050565b60008281526033602052604090206112a79082611948565b15610a41576112b4611021565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611310908261195d565b15610a415761131d611021565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610d80576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6113c3610c8c565b61140b576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61143e611021565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b0382166114b6576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6114c2600083836118e0565b6067546114cf9082611361565b6067556001600160a01b0382166000908152606560205260409020546114f59082611361565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600061155830611972565b15905090565b600054610100900460ff1680611577575061157761154d565b80611585575060005460ff16155b6115c05760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff161580156115eb576000805460ff1961ff0019909116610100171660011790555b6115f3611978565b6115fb611978565b6116058383611a19565b61160d611978565b611615611af1565b61161d611978565b610c6b8383611b9c565b600081848411156116b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167b578181015183820152602001611663565b50505050905090810190601f1680156116a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6116c6610c8c565b1561170b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861143e611021565b6000610d808383611c6f565b6000610d80836001600160a01b038416611cd3565b6001600160a01b0383166117a75760405162461bcd60e51b81526004018080602001828103825260258152602001806121486025913960400191505060405180910390fd5b6001600160a01b0382166117ec5760405162461bcd60e51b8152600401808060200182810382526023815260200180611f126023913960400191505060405180910390fd5b6117f78383836118e0565b61183481604051806060016040528060268152602001611fe1602691396001600160a01b0386166000908152606560205260409020549190611627565b6001600160a01b0380851660009081526065602052604080822093909355908416815220546118639082611361565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b606a805460ff191660ff92909216919091179055565b600061097582611ceb565b610c7d838383611cef565b600082821115611942576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610d80836001600160a01b038416611d3e565b6000610d80836001600160a01b038416611d88565b3b151590565b600054610100900460ff1680611991575061199161154d565b8061199f575060005460ff16155b6119da5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611a05576000805460ff1961ff0019909116610100171660011790555b8015610bd1576000805461ff001916905550565b600054610100900460ff1680611a325750611a3261154d565b80611a40575060005460ff16155b611a7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611aa6576000805460ff1961ff0019909116610100171660011790555b8251611ab9906068906020860190611e4e565b508151611acd906069906020850190611e4e565b50606a805460ff191660121790558015610c7d576000805461ff0019169055505050565b600054610100900460ff1680611b0a5750611b0a61154d565b80611b18575060005460ff16155b611b535760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611b7e576000805460ff1961ff0019909116610100171660011790555b60c9805460ff191690558015610bd1576000805461ff001916905550565b600054610100900460ff1680611bb55750611bb561154d565b80611bc3575060005460ff16155b611bfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611c29576000805460ff1961ff0019909116610100171660011790555b611c3b6000611c36611021565b610a37565b611c55600080516020612107833981519152611c36611021565b610c6b60008051602061208d833981519152611c36611021565b81546000908210611cb15760405162461bcd60e51b8152600401808060200182810382526022815260200180611ef06022913960400191505060405180910390fd5b826000018281548110611cc057fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b611cfa838383610c7d565b611d02610c8c565b15610c7d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061221c602a913960400191505060405180910390fd5b6000611d4a8383611cd3565b611d8057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610975565b506000610975565b60008181526001830160205260408120548015611e445783546000198083019190810190600090879083908110611dbb57fe5b9060005260206000200154905080876000018481548110611dd857fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611e0857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610975565b6000915050610975565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611e845760008555611eca565b82601f10611e9d57805160ff1916838001178555611eca565b82800160010185558215611eca579182015b82811115611eca578251825591602001919060010190611eaf565b50611ed6929150611eda565b5090565b5b80821115611ed65760008155600101611edb56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e706175736545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636565d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a45524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63659f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a645524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20706175736545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6645524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a264697066735822122040cd34945ac43451d462ae5727e5bed4219f0aa1e612b6ca107ed67e3f8a82e964736f6c63430007060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806379cc67901161011a578063a9059cbb116100ad578063d53913931161007c578063d539139314610837578063d547741f1461083f578063dd62ed3e1461086b578063e63ab1e914610899578063fca3b5aa146108a1576101fb565b8063a9059cbb1461069a578063aa28fea7146106c6578063c634b78e146107f4578063ca15c8731461081a576101fb565b806391d14854116100e957806391d148541461063257806395d89b411461065e578063a217fddf14610666578063a457c2d71461066e576101fb565b806379cc6790146105a25780637fae3b33146105ce5780638456cb59146105eb5780639010d07c146105f3576101fb565b806339509351116101925780634cd88b76116101615780634cd88b761461041f578063540ba01d146105485780635c975abb1461057457806370a082311461057c576101fb565b806339509351146103a25780633f4ba83a146103ce57806340c10f19146103d657806342966c6814610402576101fb565b8063248a9ca3116101ce578063248a9ca31461030d5780632f2ff15d1461032a578063313ce5671461035857806336568abe14610376576101fb565b806306fdde0314610200578063095ea7b31461027d57806318160ddd146102bd57806323b872dd146102d7575b600080fd5b6102086108c7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b03813516906020013561095d565b604080519115158252519081900360200190f35b6102c561097b565b60408051918252519081900360200190f35b6102a9600480360360608110156102ed57600080fd5b506001600160a01b03813581169160208101359091169060400135610981565b6102c56004803603602081101561032357600080fd5b50356109c4565b6103566004803603604081101561034057600080fd5b50803590602001356001600160a01b03166109d9565b005b610360610a45565b6040805160ff9092168252519081900360200190f35b6103566004803603604081101561038c57600080fd5b50803590602001356001600160a01b0316610a4e565b6102a9600480360360408110156103b857600080fd5b506001600160a01b038135169060200135610aaf565b610356610b02565b610356600480360360408110156103ec57600080fd5b506001600160a01b038135169060200135610b61565b6103566004803603602081101561041857600080fd5b5035610bc0565b6103566004803603604081101561043557600080fd5b810190602081018135600160201b81111561044f57600080fd5b82018360208201111561046157600080fd5b803590602001918460018302840111600160201b8311171561048257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104d457600080fd5b8201836020820111156104e657600080fd5b803590602001918460018302840111600160201b8311171561050757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd4945050505050565b6103566004803603604081101561055e57600080fd5b506001600160a01b038135169060200135610c82565b6102a9610c8c565b6102c56004803603602081101561059257600080fd5b50356001600160a01b0316610c95565b610356600480360360408110156105b857600080fd5b506001600160a01b038135169060200135610cb0565b610356600480360360208110156105e457600080fd5b5035610d05565b610356610d0b565b6106166004803603604081101561060957600080fd5b5080359060200135610d68565b604080516001600160a01b039092168252519081900360200190f35b6102a96004803603604081101561064857600080fd5b50803590602001356001600160a01b0316610d87565b610208610d9f565b6102c5610e00565b6102a96004803603604081101561068457600080fd5b506001600160a01b038135169060200135610e05565b6102a9600480360360408110156106b057600080fd5b506001600160a01b038135169060200135610e6d565b610356600480360360608110156106dc57600080fd5b810190602081018135600160201b8111156106f657600080fd5b82018360208201111561070857600080fd5b803590602001918460018302840111600160201b8311171561072957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460018302840111600160201b831117156107ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff169150610e819050565b6103566004803603602081101561080a57600080fd5b50356001600160a01b0316610f3f565b6102c56004803603602081101561083057600080fd5b5035610f4a565b6102c5610f61565b6103566004803603604081101561085557600080fd5b50803590602001356001600160a01b0316610f73565b6102c56004803603604081101561088157600080fd5b506001600160a01b0381358116916020013516610fcc565b6102c5610ff7565b610356600480360360208110156108b757600080fd5b50356001600160a01b0316611009565b60688054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109535780601f1061092857610100808354040283529160200191610953565b820191906000526020600020905b81548152906001019060200180831161093657829003601f168201915b5050505050905090565b600061097161096a611021565b8484611025565b5060015b92915050565b60675490565b600061015f546000146109b1576000606461015f5484028161099f57fe5b0490506109ac8582611111565b909103905b6109bc84848461120d565b949350505050565b60009081526033602052604090206002015490565b6000828152603360205260409020600201546109fc906109f7611021565b610d87565b610a375760405162461bcd60e51b815260040180806020018281038252602f815260200180611f35602f913960400191505060405180910390fd5b610a41828261128f565b5050565b606a5460ff1690565b610a56611021565b6001600160a01b0316816001600160a01b031614610aa55760405162461bcd60e51b815260040180806020018281038252602f8152602001806121ed602f913960400191505060405180910390fd5b610a4182826112f8565b6000610971610abc611021565b84610afd8560666000610acd611021565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611361565b611025565b610b1c60008051602061208d8339815191526109f7611021565b610b575760405162461bcd60e51b8152600401808060200182810382526039815260200180611f866039913960400191505060405180910390fd5b610b5f6113bb565b565b610b7b6000805160206121078339815191526109f7611021565b610bb65760405162461bcd60e51b81526004018080602001828103825260368152602001806120ad6036913960400191505060405180910390fd5b610a41828261145b565b610bd1610bcb611021565b82611111565b50565b600054610100900460ff1680610bed5750610bed61154d565b80610bfb575060005460ff16155b610c365760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015610c61576000805460ff1961ff0019909116610100171660011790555b610c6b838361155e565b8015610c7d576000805461ff00191690555b505050565b610a418282611111565b60c95460ff1690565b6001600160a01b031660009081526065602052604090205490565b6000610ce7826040518060600160405280602481526020016120e360249139610ce086610cdb611021565b610fcc565b9190611627565b9050610cfb83610cf5611021565b83611025565b610c7d8383611111565b61015f55565b610d2560008051602061208d8339815191526109f7611021565b610d605760405162461bcd60e51b81526004018080602001828103825260378152602001806121916037913960400191505060405180910390fd5b610b5f6116be565b6000828152603360205260408120610d809083611741565b9392505050565b6000828152603360205260408120610d80908361174d565b60698054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156109535780601f1061092857610100808354040283529160200191610953565b600081565b6000610971610e12611021565b84610afd856040518060600160405280602581526020016121c86025913960666000610e3c611021565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611627565b6000610971610e7a611021565b8484611762565b600054610100900460ff1680610e9a5750610e9a61154d565b80610ea8575060005460ff16155b610ee35760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015610f0e576000805460ff1961ff0019909116610100171660011790555b610f18848461155e565b610f21826118bf565b600061015f558015610f39576000805461ff00191690555b50505050565b610bd1600082610a37565b6000818152603360205260408120610975906118d5565b60008051602061210783398151915281565b600082815260336020526040902060020154610f91906109f7611021565b610aa55760405162461bcd60e51b81526004018080602001828103825260308152602001806120076030913960400191505060405180910390fd5b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b60008051602061208d83398151915281565b610bd1600080516020612107833981519152826109d9565b3390565b6001600160a01b03831661106a5760405162461bcd60e51b815260040180806020018281038252602481526020018061216d6024913960400191505060405180910390fd5b6001600160a01b0382166110af5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fbf6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260666020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166111565760405162461bcd60e51b81526004018080602001828103825260218152602001806121276021913960400191505060405180910390fd5b611162826000836118e0565b61119f81604051806060016040528060228152602001611f64602291396001600160a01b0385166000908152606560205260409020549190611627565b6001600160a01b0383166000908152606560205260409020556067546111c590826118eb565b6067556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061121a848484611762565b61128584611226611021565b610afd85604051806060016040528060288152602001612065602891396001600160a01b038a16600090815260666020526040812090611264611021565b6001600160a01b031681526020810191909152604001600020549190611627565b5060019392505050565b60008281526033602052604090206112a79082611948565b15610a41576112b4611021565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152603360205260409020611310908261195d565b15610a415761131d611021565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610d80576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6113c3610c8c565b61140b576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61143e611021565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b0382166114b6576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6114c2600083836118e0565b6067546114cf9082611361565b6067556001600160a01b0382166000908152606560205260409020546114f59082611361565b6001600160a01b03831660008181526065602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600061155830611972565b15905090565b600054610100900460ff1680611577575061157761154d565b80611585575060005460ff16155b6115c05760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff161580156115eb576000805460ff1961ff0019909116610100171660011790555b6115f3611978565b6115fb611978565b6116058383611a19565b61160d611978565b611615611af1565b61161d611978565b610c6b8383611b9c565b600081848411156116b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167b578181015183820152602001611663565b50505050905090810190601f1680156116a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6116c6610c8c565b1561170b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861143e611021565b6000610d808383611c6f565b6000610d80836001600160a01b038416611cd3565b6001600160a01b0383166117a75760405162461bcd60e51b81526004018080602001828103825260258152602001806121486025913960400191505060405180910390fd5b6001600160a01b0382166117ec5760405162461bcd60e51b8152600401808060200182810382526023815260200180611f126023913960400191505060405180910390fd5b6117f78383836118e0565b61183481604051806060016040528060268152602001611fe1602691396001600160a01b0386166000908152606560205260409020549190611627565b6001600160a01b0380851660009081526065602052604080822093909355908416815220546118639082611361565b6001600160a01b0380841660008181526065602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b606a805460ff191660ff92909216919091179055565b600061097582611ceb565b610c7d838383611cef565b600082821115611942576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610d80836001600160a01b038416611d3e565b6000610d80836001600160a01b038416611d88565b3b151590565b600054610100900460ff1680611991575061199161154d565b8061199f575060005460ff16155b6119da5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611a05576000805460ff1961ff0019909116610100171660011790555b8015610bd1576000805461ff001916905550565b600054610100900460ff1680611a325750611a3261154d565b80611a40575060005460ff16155b611a7b5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611aa6576000805460ff1961ff0019909116610100171660011790555b8251611ab9906068906020860190611e4e565b508151611acd906069906020850190611e4e565b50606a805460ff191660121790558015610c7d576000805461ff0019169055505050565b600054610100900460ff1680611b0a5750611b0a61154d565b80611b18575060005460ff16155b611b535760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611b7e576000805460ff1961ff0019909116610100171660011790555b60c9805460ff191690558015610bd1576000805461ff001916905550565b600054610100900460ff1680611bb55750611bb561154d565b80611bc3575060005460ff16155b611bfe5760405162461bcd60e51b815260040180806020018281038252602e815260200180612037602e913960400191505060405180910390fd5b600054610100900460ff16158015611c29576000805460ff1961ff0019909116610100171660011790555b611c3b6000611c36611021565b610a37565b611c55600080516020612107833981519152611c36611021565b610c6b60008051602061208d833981519152611c36611021565b81546000908210611cb15760405162461bcd60e51b8152600401808060200182810382526022815260200180611ef06022913960400191505060405180910390fd5b826000018281548110611cc057fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b611cfa838383610c7d565b611d02610c8c565b15610c7d5760405162461bcd60e51b815260040180806020018281038252602a81526020018061221c602a913960400191505060405180910390fd5b6000611d4a8383611cd3565b611d8057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610975565b506000610975565b60008181526001830160205260408120548015611e445783546000198083019190810190600090879083908110611dbb57fe5b9060005260206000200154905080876000018481548110611dd857fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611e0857fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610975565b6000915050610975565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611e845760008555611eca565b82601f10611e9d57805160ff1916838001178555611eca565b82800160010185558215611eca579182015b82811115611eca578251825591602001919060010190611eaf565b50611ed6929150611eda565b5090565b5b80821115611ed65760008155600101611edb56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e706175736545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636565d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a45524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e63659f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a645524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7