Contract details
0x3D18D6881d0F5257fA1303121b3732F5F0d4a247
Contract name
TreasuryStaking
Creator
Balance
0 LOOP($0)
Transactions
Transfers
Gas used
710,201
Last balance update
Contract Source Code Verified (Exact Match)
Contract name
TreasuryStaking
Compiler version
v0.8.19+commit.7dd6d404
EVM version
default
Optimization enabled
true
Optimization runs
200
Verified at
Jun 28 2023 05:59:07 AM (+00:00 UTC)
Constructor Arguments
0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000385b245f063242d2679ac3b0e8682c3e44e38ef10000000000000000000000002f78e60563f5b5a2ff234c57877d1d6ecdd87e2200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001ae
Arg [0] apr (uint256[]): 0560500430
Arg [1] tokenAddress (address):
Arg [2] nftAddress (address):
Contract source code (solidity)
View UML diagram
Loading data, please wait...
Contract ABI
[
{
"inputs": [
{
"internalType": "uint256[]",
"name": "apr",
"type": "uint256[]"
},
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "address",
"name": "nftAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
}
],
"name": "ClaimReward",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "users",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "DepositTokens",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "_address",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "EmergencyUnstake",
"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": false,
"internalType": "uint256[]",
"name": "_apr",
"type": "uint256[]"
}
],
"name": "SetAPR",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[2]",
"name": "newFee",
"type": "uint256[2]"
}
],
"name": "SetFee",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_days",
"type": "uint256"
}
],
"name": "SetNoFeeDays",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "level",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "locktime",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakedTime",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "lastUpdatedTime",
"type": "uint256"
}
],
"name": "Stake",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
}
],
"name": "Unstake",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "users",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "WithdrawTokens",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "aprRates",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "users",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "availableRewards",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "depositTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "emergencyUnstake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_userAddress",
"type": "address"
}
],
"name": "getAllStakedTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_userAddress",
"type": "address"
}
],
"name": "getAllStakedUsers",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "level",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isStake",
"type": "bool"
}
],
"name": "getFeeDetails",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getreward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "noFeeDays",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_apr",
"type": "uint256[]"
}
],
"name": "setAPR",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "newFee",
"type": "uint256[2]"
}
],
"name": "setFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_days",
"type": "uint256"
}
],
"name": "setNoFeeDays",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakeRewardFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakeDays",
"type": "uint256"
}
],
"name": "stakeTreasure",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakersDetails",
"outputs": [
{
"internalType": "uint256",
"name": "tokenID",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakeDays",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "levelType",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastUpdatedTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "treasuryNFT",
"outputs": [
{
"internalType": "contract TreasuryNFT",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "unLockTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "unstakeNFTs",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Contract creation code
0x60806040523480156200001157600080fd5b506040516200211538038062002115833981016040819052620000349162000172565b6200003f3362000088565b825162000054906003906020860190620000d8565b50600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790555062000261565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000116579160200282015b8281111562000116578251825591602001919060010190620000f9565b506200012492915062000128565b5090565b5b8082111562000124576000815560010162000129565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200016d57600080fd5b919050565b6000806000606084860312156200018857600080fd5b83516001600160401b0380821115620001a057600080fd5b818601915086601f830112620001b557600080fd5b8151602082821115620001cc57620001cc6200013f565b8160051b604051601f19603f83011681018181108682111715620001f457620001f46200013f565b60405292835281830193508481018201928a8411156200021357600080fd5b948201945b83861015620002335785518552948201949382019362000218565b975062000244905088820162000155565b955050505050620002586040850162000155565b90509250925092565b611ea480620002716000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80634b91f2e4116100de5780637e86f41f11610097578063dd49756e11610071578063dd49756e146103d5578063f128d786146103e8578063f2fde38b146103fb578063fc0c546a1461040e57600080fd5b80637e86f41f1461039e5780638da5cb5b146103b157806398afd621146103c257600080fd5b80634b91f2e41461032a5780635244c0331461033d5780636c046e99146103505780637002516314610363578063715018a6146103835780637267b8561461038b57600080fd5b8063150b7a0211610130578063150b7a021461028757806317640841146102be5780632dcbdfc0146102d15780633111e8ca146102f1578063315a095d146103045780633837c3771461031757600080fd5b8063012ce501146101785780630962ef791461018d5780630bf0d6d4146101a05780630fda2634146101c6578063109979f2146101f1578063132955c7146101fa575b600080fd5b61018b610186366004611988565b610421565b005b61018b61019b366004611988565b6104cd565b6101b36101ae3660046119b6565b6107d0565b6040519081526020015b60405180910390f35b6002546101d9906001600160a01b031681565b6040516001600160a01b0390911681526020016101bd565b6101b3600d5481565b6102516102083660046119b6565b600660209081526000928352604080842090915290825290208054600182015460028301546003840154600485015460059095015493949293919290916001600160a01b031686565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c0016101bd565b6102a5610295366004611a29565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101bd565b61018b6102cc366004611aed565b610a50565b6102e46102df366004611b0f565b610ec7565b6040516101bd9190611b33565b61018b6102ff366004611b77565b610f33565b61018b610312366004611988565b610f7e565b6101b3610325366004611988565b611032565b6101b3610338366004611988565b611167565b6101b361034b366004611c2b565b61117e565b61018b61035e366004611c5b565b611221565b6101b3610371366004611988565b600e6020526000908152604090205481565b61018b611268565b6101b3610399366004611988565b61127c565b61018b6103ac366004611988565b61129d565b6000546001600160a01b03166101d9565b6102e46103d0366004611b0f565b611590565b61018b6103e3366004611988565b6115fa565b61018b6103f6366004611988565b6116b0565b61018b610409366004611b0f565b6116ed565b6001546101d9906001600160a01b031681565b610429611766565b600254604051632142170760e11b81526001600160a01b03909116906342842e0e9061045d90309033908690600401611cdb565b600060405180830381600087803b15801561047757600080fd5b505af115801561048b573d6000803e3d6000fd5b505060408051338152602081018590527f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf0093500190505b60405180910390a150565b3233146104f55760405162461bcd60e51b81526004016104ec90611cff565b60405180910390fd5b3360009081526006602090815260408083208484526008835281842054845290915281206001015461052a9062015180611d36565b3360009081526006602090815260408083208684526008835281842054845290915290206003015461055c9190611d4d565b336000818152600660209081526040808320878452600883528184205484529091529020600501549192506001600160a01b03909116146105d15760405162461bcd60e51b815260206004820152600f60248201526e139bc81cdd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b600254604051630219207560e61b8152600481018490526000916001600160a01b0316906386481d4090602401602060405180830381865afa15801561061b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063f9190611d60565b9050600061064d33856107d0565b9050806000036106935760405162461bcd60e51b81526020600482015260116024820152704e6f20456e6f756768205265776172647360781b60448201526064016104ec565b8242106106c857336000908152600a6020908152604080832085845282528083208784529091529020805460ff191660011790555b3360008181526006602090815260408083208884526008835281842080548552908352818420426004918201558585526009845282852091548552925291829020805460ff1916600190811790915554915163a9059cbb60e01b815290810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190611d79565b5060408051338152602081018390529081018590527fe74e5c9d4ac1fc33412485f18c159a0a391efe287ab3fd271123f30e6bacf4e39060600160405180910390a150505050565b6001600160a01b038281166000908152600660209081526040808320858452600883528184205484529091528120600501549091166108435760405162461bcd60e51b815260206004820152600f60248201526e139bc814dd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b60008061084f84611032565b6001600160a01b038616600090815260066020908152604080832088845260088352818420548452909152812060010154919250906108919062015180611d36565b6001600160a01b0387166000908152600660209081526040808320898452600883528184205484529091529020600301546108cc9190611d4d565b6001600160a01b03871660009081526009602090815260408083208984526008835281842054845290915290205490915060ff1615801561090d5750804211155b15610963576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206003015462015180906109529042611d96565b61095c9190611da9565b9250610a3a565b8042101580156109a957506001600160a01b0386166000908152600a6020908152604080832088845260088352818420548452825280832088845290915290205460ff16155b156109ee576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206004015462015180906109529083611d96565b804211610a35576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206004015462015180906109529042611d96565b600092505b610a448284611d36565b93505050505b92915050565b323314610a6f5760405162461bcd60e51b81526004016104ec90611cff565b6002546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190611dcb565b6001600160a01b0316336001600160a01b031614610b2a5760405162461bcd60e51b815260206004820152600b60248201526a2737ba10309027bbb732b960a91b60448201526064016104ec565b8015801590610b3b575061016d8111155b610b765760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964204461797360a01b60448201526064016104ec565b600254604051630219207560e61b8152600481018490526000916001600160a01b0316906386481d4090602401602060405180830381865afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611d60565b33600090815260076020526040812054919250908190610c05906001611d4d565b9050610c496040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b85815260208082018690526040808301869052426060840181905260808401523360a08401819052600090815260079092528120805491610c8983611de8565b90915550506000868152600860205260409020829055610caa85603c611d36565b610cb49042611d4d565b6000878152600e6020526040902055600d54851115610cdf57610cd884600061117e565b9250610ced565b610cea84600161117e565b92505b336000818152600b6020908152604080832080546001808201835591855283852001879055848452600c835281842080548083018255908552838520018b90558484526006835281842087855283529281902085518155918501518284015584810151600283015560608501516003830155608085015160048084019190915560a0860151600590930180546001600160a01b0319166001600160a01b03948516179055925490516323b872dd60e01b81529116926323b872dd92610db6923091899101611cdb565b6020604051808303816000875af1158015610dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df99190611d79565b50600254604051632142170760e11b81526001600160a01b03909116906342842e0e90610e2e90339030908b90600401611cdb565b600060405180830381600087803b158015610e4857600080fd5b505af1158015610e5c573d6000803e3d6000fd5b50505060608083015160808085015160408051338152602081018d90529081018a90529384018a90529083019190915260a08201527fc6f8dbf1fa0a0918d52df74fa2b529a0a4da7011a24f263a28678e7504444cd6915060c00160405180910390a1505050505050565b6001600160a01b0381166000908152600b6020908152604091829020805483518184028101840190945280845260609392830182828015610f2757602002820191906000526020600020905b815481526020019060010190808311610f13575b50505050509050919050565b610f3b611766565b8051610f4e9060039060208401906118fb565b507f27a0ca87f05c2c480d9a6f0baf5cfc2bf60ea940109afc9a6e9d5a9a9402a588816040516104c29190611b33565b610f86611766565b60015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611d79565b5060408051338152602081018390527f680f2e4f4032ebf1774e8cdbaddcb1b617a5a606411c8ca96257ada338d3833c91016104c2565b600254604051630219207560e61b81526004810183905260009182916001600160a01b03909116906386481d4090602401602060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a49190611d60565b6002546040516348a494ab60e11b8152600481018390529192506000916001600160a01b0390911690639149295690602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190611d60565b9050600061016d6103e8836003868154811061113557611135611e01565b906000526020600020015461114a9190611d36565b6111549190611da9565b61115e9190611da9565b95945050505050565b6004816002811061117757600080fd5b0154905081565b6002546040516348a494ab60e11b81526004810184905260009182916001600160a01b0390911690639149295690602401602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190611d60565b9050600080841561120557600454915061120b565b60055491505b60646112178385611d36565b610a449190611da9565b611229611766565b6112366004826002611946565b507fdca1c47988dd483ddee61c525eb94598b787673a5e473668d4df5be55c22289233826040516104c2929190611e17565b611270611766565b61127a60006117c0565b565b6003818154811061128c57600080fd5b600091825260209091200154905081565b3233146112bc5760405162461bcd60e51b81526004016104ec90611cff565b336000818152600660209081526040808320858452600883528184205484529091529020600501546001600160a01b03161461132c5760405162461bcd60e51b815260206004820152600f60248201526e139bc81cdd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b336000908152600660209081526040808320848452600883528184205484529091529020600101546113619062015180611d36565b336000908152600660209081526040808320858452600883528184205484529091529020600301546113939190611d4d565b4210156113da5760405162461bcd60e51b81526020600482015260156024820152745761697420666f7220556e7374616b652054696d6560581b60448201526064016104ec565b60006113e633836107d0565b600083815260086020526040902054909150611403906001611810565b61140e826000611810565b6000828152600e6020908152604080832083905533835260068252808320858452600883528184205484529091528120818155600181018290556002810182905560038101829055600481019190915560050180546001600160a01b031916905580156114ec5760015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190611d79565b505b600254604051632142170760e11b81526001600160a01b03909116906342842e0e9061152090309033908790600401611cdb565b600060405180830381600087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505060408051338152602081018690527f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd935001905060405180910390a15050565b6001600160a01b0381166000908152600c6020908152604091829020805483518184028101840190945280845260609392830182828015610f275760200282019190600052602060002090815481526020019060010190808311610f135750505050509050919050565b611602611766565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061163690339030908690600401611cdb565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190611d79565b5060408051338152602081018390527fe3a6e26dceff30d982e183d0ce051fb5b791f2108785a9d440d417247cef5b4191016104c2565b6116b8611766565b600d8190556040518181527fbc00e976e17d5d64f0b57412e59736b7cd2a3691e401178a614ea8e5766e2fa8906020016104c2565b6116f5611766565b6001600160a01b03811661175a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ec565b611763816117c0565b50565b6000546001600160a01b0316331461127a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ec565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561182d5750336000908152600b6020526040902061183e565b50336000908152600c602052604090205b60005b81548110156118f5578382828154811061185d5761185d611e01565b9060005260206000200154036118e3578154829061187d90600190611d96565b8154811061188d5761188d611e01565b90600052602060002001548282815481106118aa576118aa611e01565b9060005260206000200181905550818054806118c8576118c8611e58565b600190038181906000526020600020016000905590556118f5565b806118ed81611de8565b915050611841565b50505050565b828054828255906000526020600020908101928215611936579160200282015b8281111561193657825182559160200191906001019061191b565b50611942929150611973565b5090565b8260028101928215611936579160200282018281111561193657825182559160200191906001019061191b565b5b808211156119425760008155600101611974565b60006020828403121561199a57600080fd5b5035919050565b6001600160a01b038116811461176357600080fd5b600080604083850312156119c957600080fd5b82356119d4816119a1565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a2157611a216119e2565b604052919050565b60008060008060808587031215611a3f57600080fd5b8435611a4a816119a1565b9350602085810135611a5b816119a1565b935060408601359250606086013567ffffffffffffffff80821115611a7f57600080fd5b818801915088601f830112611a9357600080fd5b813581811115611aa557611aa56119e2565b611ab7601f8201601f191685016119f8565b91508082528984828501011115611acd57600080fd5b808484018584013760008482840101525080935050505092959194509250565b60008060408385031215611b0057600080fd5b50508035926020909101359150565b600060208284031215611b2157600080fd5b8135611b2c816119a1565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015611b6b57835183529284019291840191600101611b4f565b50909695505050505050565b60006020808385031215611b8a57600080fd5b823567ffffffffffffffff80821115611ba257600080fd5b818501915085601f830112611bb657600080fd5b813581811115611bc857611bc86119e2565b8060051b9150611bd98483016119f8565b8181529183018401918481019088841115611bf357600080fd5b938501935b83851015611c1157843582529385019390850190611bf8565b98975050505050505050565b801515811461176357600080fd5b60008060408385031215611c3e57600080fd5b823591506020830135611c5081611c1d565b809150509250929050565b600060408284031215611c6d57600080fd5b82601f830112611c7c57600080fd5b6040516040810181811067ffffffffffffffff82111715611c9f57611c9f6119e2565b8060405250806040840185811115611cb657600080fd5b845b81811015611cd0578035835260209283019201611cb8565b509195945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a4a57610a4a611d20565b80820180821115610a4a57610a4a611d20565b600060208284031215611d7257600080fd5b5051919050565b600060208284031215611d8b57600080fd5b8151611b2c81611c1d565b81810381811115610a4a57610a4a611d20565b600082611dc657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611ddd57600080fd5b8151611b2c816119a1565b600060018201611dfa57611dfa611d20565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03831681526060810160208083018460005b6002811015611e4d57815183529183019190830190600101611e30565b505050509392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220cf36ea1008a476e4d02888b212f0d114f7a4e593bc3441d6bf6b7483fe71248564736f6c634300081300330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000385b245f063242d2679ac3b0e8682c3e44e38ef10000000000000000000000002f78e60563f5b5a2ff234c57877d1d6ecdd87e2200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001ae
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80634b91f2e4116100de5780637e86f41f11610097578063dd49756e11610071578063dd49756e146103d5578063f128d786146103e8578063f2fde38b146103fb578063fc0c546a1461040e57600080fd5b80637e86f41f1461039e5780638da5cb5b146103b157806398afd621146103c257600080fd5b80634b91f2e41461032a5780635244c0331461033d5780636c046e99146103505780637002516314610363578063715018a6146103835780637267b8561461038b57600080fd5b8063150b7a0211610130578063150b7a021461028757806317640841146102be5780632dcbdfc0146102d15780633111e8ca146102f1578063315a095d146103045780633837c3771461031757600080fd5b8063012ce501146101785780630962ef791461018d5780630bf0d6d4146101a05780630fda2634146101c6578063109979f2146101f1578063132955c7146101fa575b600080fd5b61018b610186366004611988565b610421565b005b61018b61019b366004611988565b6104cd565b6101b36101ae3660046119b6565b6107d0565b6040519081526020015b60405180910390f35b6002546101d9906001600160a01b031681565b6040516001600160a01b0390911681526020016101bd565b6101b3600d5481565b6102516102083660046119b6565b600660209081526000928352604080842090915290825290208054600182015460028301546003840154600485015460059095015493949293919290916001600160a01b031686565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c0016101bd565b6102a5610295366004611a29565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101bd565b61018b6102cc366004611aed565b610a50565b6102e46102df366004611b0f565b610ec7565b6040516101bd9190611b33565b61018b6102ff366004611b77565b610f33565b61018b610312366004611988565b610f7e565b6101b3610325366004611988565b611032565b6101b3610338366004611988565b611167565b6101b361034b366004611c2b565b61117e565b61018b61035e366004611c5b565b611221565b6101b3610371366004611988565b600e6020526000908152604090205481565b61018b611268565b6101b3610399366004611988565b61127c565b61018b6103ac366004611988565b61129d565b6000546001600160a01b03166101d9565b6102e46103d0366004611b0f565b611590565b61018b6103e3366004611988565b6115fa565b61018b6103f6366004611988565b6116b0565b61018b610409366004611b0f565b6116ed565b6001546101d9906001600160a01b031681565b610429611766565b600254604051632142170760e11b81526001600160a01b03909116906342842e0e9061045d90309033908690600401611cdb565b600060405180830381600087803b15801561047757600080fd5b505af115801561048b573d6000803e3d6000fd5b505060408051338152602081018590527f571394674ec9d9e81517060110f8f894ce912af2b2febc091bee0cdea68adf0093500190505b60405180910390a150565b3233146104f55760405162461bcd60e51b81526004016104ec90611cff565b60405180910390fd5b3360009081526006602090815260408083208484526008835281842054845290915281206001015461052a9062015180611d36565b3360009081526006602090815260408083208684526008835281842054845290915290206003015461055c9190611d4d565b336000818152600660209081526040808320878452600883528184205484529091529020600501549192506001600160a01b03909116146105d15760405162461bcd60e51b815260206004820152600f60248201526e139bc81cdd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b600254604051630219207560e61b8152600481018490526000916001600160a01b0316906386481d4090602401602060405180830381865afa15801561061b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063f9190611d60565b9050600061064d33856107d0565b9050806000036106935760405162461bcd60e51b81526020600482015260116024820152704e6f20456e6f756768205265776172647360781b60448201526064016104ec565b8242106106c857336000908152600a6020908152604080832085845282528083208784529091529020805460ff191660011790555b3360008181526006602090815260408083208884526008835281842080548552908352818420426004918201558585526009845282852091548552925291829020805460ff1916600190811790915554915163a9059cbb60e01b815290810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107889190611d79565b5060408051338152602081018390529081018590527fe74e5c9d4ac1fc33412485f18c159a0a391efe287ab3fd271123f30e6bacf4e39060600160405180910390a150505050565b6001600160a01b038281166000908152600660209081526040808320858452600883528184205484529091528120600501549091166108435760405162461bcd60e51b815260206004820152600f60248201526e139bc814dd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b60008061084f84611032565b6001600160a01b038616600090815260066020908152604080832088845260088352818420548452909152812060010154919250906108919062015180611d36565b6001600160a01b0387166000908152600660209081526040808320898452600883528184205484529091529020600301546108cc9190611d4d565b6001600160a01b03871660009081526009602090815260408083208984526008835281842054845290915290205490915060ff1615801561090d5750804211155b15610963576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206003015462015180906109529042611d96565b61095c9190611da9565b9250610a3a565b8042101580156109a957506001600160a01b0386166000908152600a6020908152604080832088845260088352818420548452825280832088845290915290205460ff16155b156109ee576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206004015462015180906109529083611d96565b804211610a35576001600160a01b03861660009081526006602090815260408083208884526008835281842054845290915290206004015462015180906109529042611d96565b600092505b610a448284611d36565b93505050505b92915050565b323314610a6f5760405162461bcd60e51b81526004016104ec90611cff565b6002546040516331a9108f60e11b8152600481018490526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190611dcb565b6001600160a01b0316336001600160a01b031614610b2a5760405162461bcd60e51b815260206004820152600b60248201526a2737ba10309027bbb732b960a91b60448201526064016104ec565b8015801590610b3b575061016d8111155b610b765760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964204461797360a01b60448201526064016104ec565b600254604051630219207560e61b8152600481018490526000916001600160a01b0316906386481d4090602401602060405180830381865afa158015610bc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be49190611d60565b33600090815260076020526040812054919250908190610c05906001611d4d565b9050610c496040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b85815260208082018690526040808301869052426060840181905260808401523360a08401819052600090815260079092528120805491610c8983611de8565b90915550506000868152600860205260409020829055610caa85603c611d36565b610cb49042611d4d565b6000878152600e6020526040902055600d54851115610cdf57610cd884600061117e565b9250610ced565b610cea84600161117e565b92505b336000818152600b6020908152604080832080546001808201835591855283852001879055848452600c835281842080548083018255908552838520018b90558484526006835281842087855283529281902085518155918501518284015584810151600283015560608501516003830155608085015160048084019190915560a0860151600590930180546001600160a01b0319166001600160a01b03948516179055925490516323b872dd60e01b81529116926323b872dd92610db6923091899101611cdb565b6020604051808303816000875af1158015610dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df99190611d79565b50600254604051632142170760e11b81526001600160a01b03909116906342842e0e90610e2e90339030908b90600401611cdb565b600060405180830381600087803b158015610e4857600080fd5b505af1158015610e5c573d6000803e3d6000fd5b50505060608083015160808085015160408051338152602081018d90529081018a90529384018a90529083019190915260a08201527fc6f8dbf1fa0a0918d52df74fa2b529a0a4da7011a24f263a28678e7504444cd6915060c00160405180910390a1505050505050565b6001600160a01b0381166000908152600b6020908152604091829020805483518184028101840190945280845260609392830182828015610f2757602002820191906000526020600020905b815481526020019060010190808311610f13575b50505050509050919050565b610f3b611766565b8051610f4e9060039060208401906118fb565b507f27a0ca87f05c2c480d9a6f0baf5cfc2bf60ea940109afc9a6e9d5a9a9402a588816040516104c29190611b33565b610f86611766565b60015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611d79565b5060408051338152602081018390527f680f2e4f4032ebf1774e8cdbaddcb1b617a5a606411c8ca96257ada338d3833c91016104c2565b600254604051630219207560e61b81526004810183905260009182916001600160a01b03909116906386481d4090602401602060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a49190611d60565b6002546040516348a494ab60e11b8152600481018390529192506000916001600160a01b0390911690639149295690602401602060405180830381865afa1580156110f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111179190611d60565b9050600061016d6103e8836003868154811061113557611135611e01565b906000526020600020015461114a9190611d36565b6111549190611da9565b61115e9190611da9565b95945050505050565b6004816002811061117757600080fd5b0154905081565b6002546040516348a494ab60e11b81526004810184905260009182916001600160a01b0390911690639149295690602401602060405180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190611d60565b9050600080841561120557600454915061120b565b60055491505b60646112178385611d36565b610a449190611da9565b611229611766565b6112366004826002611946565b507fdca1c47988dd483ddee61c525eb94598b787673a5e473668d4df5be55c22289233826040516104c2929190611e17565b611270611766565b61127a60006117c0565b565b6003818154811061128c57600080fd5b600091825260209091200154905081565b3233146112bc5760405162461bcd60e51b81526004016104ec90611cff565b336000818152600660209081526040808320858452600883528184205484529091529020600501546001600160a01b03161461132c5760405162461bcd60e51b815260206004820152600f60248201526e139bc81cdd185ad95cc8119bdd5b99608a1b60448201526064016104ec565b336000908152600660209081526040808320848452600883528184205484529091529020600101546113619062015180611d36565b336000908152600660209081526040808320858452600883528184205484529091529020600301546113939190611d4d565b4210156113da5760405162461bcd60e51b81526020600482015260156024820152745761697420666f7220556e7374616b652054696d6560581b60448201526064016104ec565b60006113e633836107d0565b600083815260086020526040902054909150611403906001611810565b61140e826000611810565b6000828152600e6020908152604080832083905533835260068252808320858452600883528184205484529091528120818155600181018290556002810182905560038101829055600481019190915560050180546001600160a01b031916905580156114ec5760015460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190611d79565b505b600254604051632142170760e11b81526001600160a01b03909116906342842e0e9061152090309033908790600401611cdb565b600060405180830381600087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505060408051338152602081018690527f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd935001905060405180910390a15050565b6001600160a01b0381166000908152600c6020908152604091829020805483518184028101840190945280845260609392830182828015610f275760200282019190600052602060002090815481526020019060010190808311610f135750505050509050919050565b611602611766565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061163690339030908690600401611cdb565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190611d79565b5060408051338152602081018390527fe3a6e26dceff30d982e183d0ce051fb5b791f2108785a9d440d417247cef5b4191016104c2565b6116b8611766565b600d8190556040518181527fbc00e976e17d5d64f0b57412e59736b7cd2a3691e401178a614ea8e5766e2fa8906020016104c2565b6116f5611766565b6001600160a01b03811661175a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ec565b611763816117c0565b50565b6000546001600160a01b0316331461127a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ec565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561182d5750336000908152600b6020526040902061183e565b50336000908152600c602052604090205b60005b81548110156118f5578382828154811061185d5761185d611e01565b9060005260206000200154036118e3578154829061187d90600190611d96565b8154811061188d5761188d611e01565b90600052602060002001548282815481106118aa576118aa611e01565b9060005260206000200181905550818054806118c8576118c8611e58565b600190038181906000526020600020016000905590556118f5565b806118ed81611de8565b915050611841565b50505050565b828054828255906000526020600020908101928215611936579160200282015b8281111561193657825182559160200191906001019061191b565b50611942929150611973565b5090565b8260028101928215611936579160200282018281111561193657825182559160200191906001019061191b565b5b808211156119425760008155600101611974565b60006020828403121561199a57600080fd5b5035919050565b6001600160a01b038116811461176357600080fd5b600080604083850312156119c957600080fd5b82356119d4816119a1565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611a2157611a216119e2565b604052919050565b60008060008060808587031215611a3f57600080fd5b8435611a4a816119a1565b9350602085810135611a5b816119a1565b935060408601359250606086013567ffffffffffffffff80821115611a7f57600080fd5b818801915088601f830112611a9357600080fd5b813581811115611aa557611aa56119e2565b611ab7601f8201601f191685016119f8565b91508082528984828501011115611acd57600080fd5b808484018584013760008482840101525080935050505092959194509250565b60008060408385031215611b0057600080fd5b50508035926020909101359150565b600060208284031215611b2157600080fd5b8135611b2c816119a1565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015611b6b57835183529284019291840191600101611b4f565b50909695505050505050565b60006020808385031215611b8a57600080fd5b823567ffffffffffffffff80821115611ba257600080fd5b818501915085601f830112611bb657600080fd5b813581811115611bc857611bc86119e2565b8060051b9150611bd98483016119f8565b8181529183018401918481019088841115611bf357600080fd5b938501935b83851015611c1157843582529385019390850190611bf8565b98975050505050505050565b801515811461176357600080fd5b60008060408385031215611c3e57600080fd5b823591506020830135611c5081611c1d565b809150509250929050565b600060408284031215611c6d57600080fd5b82601f830112611c7c57600080fd5b6040516040810181811067ffffffffffffffff82111715611c9f57611c9f6119e2565b8060405250806040840185811115611cb657600080fd5b845b81811015611cd0578035835260209283019201611cb8565b509195945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a4a57610a4a611d20565b80820180821115610a4a57610a4a611d20565b600060208284031215611d7257600080fd5b5051919050565b600060208284031215611d8b57600080fd5b8151611b2c81611c1d565b81810381811115610a4a57610a4a611d20565b600082611dc657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611ddd57600080fd5b8151611b2c816119a1565b600060018201611dfa57611dfa611d20565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03831681526060810160208083018460005b6002811015611e4d57815183529183019190830190600101611e30565b505050509392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220cf36ea1008a476e4d02888b212f0d114f7a4e593bc3441d6bf6b7483fe71248564736f6c63430008130033