Address Contract Partially Verified
Address
0x1068a889Fd7151fB2CA9D98d268B0d0cd623FC2f
Balance
0 ETH
Nonce
1
Code Size
11389 bytes
Creator
0x9B06D929...13db at tx 0x0ae030f6...003100
Indexed Transactions
0
Contract Bytecode
11389 bytes
0x6080604052600436106103c75760003560e01c806379594736116101f2578063adc7955d1161010d578063dac1dcfe116100a0578063e5c2b0a61161006f578063e5c2b0a614610b2c578063e82bef2914610b4c578063ea10510e14610b6c578063f2fde38b14610b8c57600080fd5b8063dac1dcfe14610a96578063dd62ed3e14610ab0578063e32759cf14610af6578063e5a6b10f14610b0c57600080fd5b8063c92d567e116100dc578063c92d567e14610a28578063ce0192f914610a49578063d49d518114610a5f578063d598643314610a7557600080fd5b8063adc7955d146109ab578063b02d757f146109c1578063b9fbc49d146109e2578063bd25bf29146109f857600080fd5b806390d1dfa911610185578063a9059cbb11610154578063a9059cbb1461093f578063aa4bde281461095f578063aa582b4214610975578063acb2ad6f1461099557600080fd5b806390d1dfa9146108c957806395d89b41146108e9578063a23270d7146108fe578063a84248611461091f57600080fd5b80638718b24f116101c15780638718b24f1461085557806388e765ff146108755780638da5cb5b1461088b5780638f02bb5b146108a957600080fd5b806379594736146107df5780637abdc1ca146107ff5780637db1342c1461081557806385dc30041461083557600080fd5b806323b872dd116102e2578063553193ca11610275578063697cfc1911610244578063697cfc19146107685780636ebcf6071461077d57806370a08231146107aa578063715018a6146107ca57600080fd5b8063553193ca146106fb5780635a7ba73c146107115780636108a3db1461073257806366d602ae1461075257600080fd5b80633bfe62ca116102b15780633bfe62ca146106755780633c11100d1461068b5780634188bf5a146106bb5780634d5ce038146106db57600080fd5b806323b872dd146106085780632dab693f14610628578063313ce5671461063e57806335c960891461065457600080fd5b80630f890b861161035a57806316f2f1a81161032957806316f2f1a81461058357806318160ddd146105995780631846a5a4146105af578063206c17bb146105d057600080fd5b80630f890b861461050d57806314a432c914610522578063150e4c471461054257806315d07d821461056257600080fd5b8063063be69e11610396578063063be69e1461049657806306fdde03146104ab57806307313d8d146104cd578063095ea7b3146104ed57600080fd5b806301339c21146103d357806301986fad146103ea578063024c2ddd1461042f57806303da2b231461047557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bac565b005b3480156103f657600080fd5b5061041a6104053660046127d1565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561043b57600080fd5b5061046761044a3660046127f4565b601460209081526000928352604080842090915290825290205481565b604051908152602001610426565b34801561048157600080fd5b5060005461041a90600160c81b900460ff1681565b3480156104a257600080fd5b506103e8610c27565b3480156104b757600080fd5b506104c0610c60565b6040516104269190612a0f565b3480156104d957600080fd5b506103e86104e8366004612959565b610cee565b3480156104f957600080fd5b5061041a610508366004612899565b610d36565b34801561051957600080fd5b506103e8610d4c565b34801561052e57600080fd5b506103e861053d366004612991565b610d85565b34801561054e57600080fd5b506103e861055d3660046128c4565b610db4565b34801561056e57600080fd5b5060005461041a90600160a01b900460ff1681565b34801561058f57600080fd5b5061046760055481565b3480156105a557600080fd5b5061046760115481565b3480156105bb57600080fd5b50601a5461041a90600160a01b900460ff1681565b3480156105dc57600080fd5b506016546105f0906001600160a01b031681565b6040516001600160a01b039091168152602001610426565b34801561061457600080fd5b5061041a61062336600461282c565b610e63565b34801561063457600080fd5b5061046760095481565b34801561064a57600080fd5b5061046760105481565b34801561066057600080fd5b5060005461041a90600160d81b900460ff1681565b34801561068157600080fd5b5061046760065481565b34801561069757600080fd5b5061041a6106a63660046127d1565b60176020526000908152604090205460ff1681565b3480156106c757600080fd5b506019546105f0906001600160a01b031681565b3480156106e757600080fd5b506104676106f63660046127d1565b610efa565b34801561070757600080fd5b50610467600d5481565b34801561071d57600080fd5b5060005461041a90600160b01b900460ff1681565b34801561073e57600080fd5b506103e861074d3660046128c4565b610f50565b34801561075e57600080fd5b50610467600c5481565b34801561077457600080fd5b506103e8611053565b34801561078957600080fd5b506104676107983660046127d1565b60136020526000908152604090205481565b3480156107b657600080fd5b506104676107c53660046127d1565b61108c565b3480156107d657600080fd5b506103e861113b565b3480156107eb57600080fd5b506103e86107fa366004612959565b6111b5565b34801561080b57600080fd5b5061046760085481565b34801561082157600080fd5b506103e8610830366004612991565b611211565b34801561084157600080fd5b506103e86108503660046127d1565b611240565b34801561086157600080fd5b50601a546105f0906001600160a01b031681565b34801561088157600080fd5b50610467600a5481565b34801561089757600080fd5b506000546001600160a01b03166105f0565b3480156108b557600080fd5b506103e86108c4366004612991565b6112f9565b3480156108d557600080fd5b506103e86108e43660046129c1565b61136c565b3480156108f557600080fd5b506104c06113fe565b34801561090a57600080fd5b5060005461041a90600160c01b900460ff1681565b34801561092b57600080fd5b506103e861093a36600461286c565b61140b565b34801561094b57600080fd5b5061041a61095a366004612899565b611460565b34801561096b57600080fd5b50610467600b5481565b34801561098157600080fd5b506103e8610990366004612919565b61146d565b3480156109a157600080fd5b50610467601d5481565b3480156109b757600080fd5b5061046760075481565b3480156109cd57600080fd5b5060005461041a90600160b81b900460ff1681565b3480156109ee57600080fd5b5061046760045481565b348015610a0457600080fd5b5061041a610a133660046127d1565b60156020526000908152604090205460ff1681565b348015610a3457600080fd5b5060005461041a90600160a81b900460ff1681565b348015610a5557600080fd5b5061046760035481565b348015610a6b57600080fd5b5061046760001981565b348015610a8157600080fd5b5060005461041a90600160d01b900460ff1681565b348015610aa257600080fd5b50601c5461041a9060ff1681565b348015610abc57600080fd5b50610467610acb3660046127f4565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610b0257600080fd5b50610467601b5481565b348015610b1857600080fd5b506001546105f0906001600160a01b031681565b348015610b3857600080fd5b506103e8610b47366004612991565b6116ae565b348015610b5857600080fd5b506002546105f0906001600160a01b031681565b348015610b7857600080fd5b506103e8610b87366004612959565b611723565b348015610b9857600080fd5b506103e8610ba73660046127d1565b61176b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610bd690612aa5565b60405180910390fd5b600d5415610c215760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610bd6565b43600d55565b6000546001600160a01b03163314610c515760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c01b19169055565b600e8054610c6d90612bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612bb8565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b505050505081565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bd690612aa5565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d43338484611855565b50600192915050565b6000546001600160a01b03163314610d765760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b8152600401610bd690612aa5565b600955565b6000546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bd690612aa5565b60005b82811015610e5d578160186000868685818110610e0e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e2391906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e5581612bf3565b915050610de1565b50505050565b6000610e708484846118b7565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610ef0576001600160a01b0384166000908152601460209081526040808320338452909152902054610ecb908390612ba1565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610f3b57506001600160a01b03821660009081526017602052604090205460ff16155b15610f4857506001919050565b506000919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610bd690612aa5565b600054600160b81b900460ff16610fc95760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610bd6565b60c98210610fd657600080fd5b60005b82811015610e5d57816015600086868581811061100657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101b91906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561104c81612bf3565b9050610fd9565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c81b19169055565b6019546000906001600160a01b0383811691161480156110b657506019546001600160a01b031633145b80156110cb5750600054600160d81b900460ff165b1561111f576019546001600160a01b031660009081526013602052604090205461111f5760405162461bcd60e51b81526020600482015260056024820152642173796e6360d81b6044820152606401610bd6565b506001600160a01b031660009081526013602052604090205490565b6000546001600160a01b031633146111655760405162461bcd60e51b8152600401610bd690612aa5565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146111df5760405162461bcd60e51b8152600401610bd690612aa5565b8015611208576008546007546006546111f89190612b4a565b6112029190612b4a565b601d5550565b6000601d555b50565b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bd690612aa5565b600b55565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610bd690612aa5565b803b63ffffffff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610bd6565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610bd690612aa5565b6109c48111156113675760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610bd6565b601d55565b6000546001600160a01b031633146113965760405162461bcd60e51b8152600401610bd690612aa5565b600a829055600c819055818110156113fa5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610bd6565b5050565b600f8054610c6d90612bb8565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d433384846118b7565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610bd690612aa5565b600054600160d01b900460ff166114e65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610bd6565b8181600081811061150757634e487b7160e01b600052603260045260246000fd5b6020029190910135600455508181600181811061153457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061156157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061158f57634e487b7160e01b600052603260045260246000fd5b602002919091013560075550818160048181106115bc57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106115e957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c460035460045460055461160c9190612b4a565b6116169190612b4a565b106116525760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6109c46006546007546008546116689190612b4a565b6116729190612b4a565b106113fa5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6000546001600160a01b031633146116d85760405162461bcd60e51b8152600401610bd690612aa5565b600381111561171e5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610bd6565b601b55565b6000546001600160a01b0316331461174d5760405162461bcd60e51b8152600401610bd690612aa5565b60008054911515600160d81b0260ff60d81b19909216919091179055565b6000546001600160a01b031633146117955760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b0381166117fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006118c284610efa565b11156119015760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610bd6565b601954600160a01b900460ff161561191e57610e5d838383611ddd565b6001600160a01b0383166000908152601360205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bd6565b6001600160a01b03841660009081526018602052604090205460ff161580156119bc57506001600160a01b03831660009081526018602052604090205460ff16155b80156119d15750601a54600160a01b900460ff165b80156119df57506000601b54115b15611a63576000805b601b54811015611a465760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150611a3386836001611ddd565b5080611a3e81612bf3565b9150506119e8565b50601b54611a55906001612b82565b611a5f9084612ba1565b9250505b6001600160a01b038416600090815260176020526040812054819060ff1680611aa457506001600160a01b03851660009081526017602052604090205460ff165b15611d7b576001600160a01b03861660009081526018602052604090205460ff16158015611aeb57506001600160a01b03851660009081526018602052604090205460ff16155b15611d5657600054600160a81b900460ff168015611b095750600d54155b15611b1357600080fd5b600054600160a81b900460ff168015611b355750600054600160b01b900460ff165b8015611b4f5750600954600d54611b4c9190612b4a565b43105b15611b98576001600160a01b03851660009081526017602052604090205460ff16611b98576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611c14576001600160a01b03861660009081526017602052604090205460ff1615611bf257600a54841115611bed5760405162461bcd60e51b8152600401610bd690612a62565b611c14565b600c54841115611c145760405162461bcd60e51b8152600401610bd690612a62565b600054600160c81b900460ff168015611c4557506001600160a01b03861660009081526017602052604090205460ff165b15611cc0576001600160a01b038516600090815260136020526040902054600b54611c708683612b4a565b1115611cbe5760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610bd6565b505b6001600160a01b03851660009081526017602052604090205460ff1615611d5157601954600160a01b900460ff16611d5157306000908152601360205260409020548015611d4f576000600754600654600454600354611d209190612b4a565b611d2a9190612b4a565b611d349190612b4a565b90508582811115611d425750815b611d4c8183611e92565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611d7b575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611dbd57506001600160a01b03861660009081526017602052604090205460ff16155b15611dc6575060015b611dd4878787868686612558565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611e07908490612ba1565b90915550506001600160a01b03831660009081526013602052604081208054849290611e34908490612b4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8091815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611eaf57612547565b611eb98180612b4a565b90506000600454600754611ecd9190612b4a565b9050600082611edc8386612b82565b611ee69190612b62565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f2e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611f6c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615612039576016546001600160a01b031663791ac947611fb28488612ba1565b60008430426040518663ffffffff1660e01b8152600401611fd7959493929190612ada565b600060405180830381600087803b158015611ff157600080fd5b505af1925050508015612002575060015b612034576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a16120e2565b6120e2565b6016546001600160a01b0316635c11d7956120548488612ba1565b601a546040516001600160e01b031960e085901b168152612089929160009187916001600160a01b0316904290600401612ada565b600060405180830381600087803b1580156120a357600080fd5b505af19250505080156120b4575060015b6120e2576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b6120ec8385612ba1565b935060008060008060149054906101000a900460ff161561227457479250866121158785612b82565b61211f9190612b62565b915061212b8284612ba1565b905060008111801561214757506002546001600160a01b031615155b15612188576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612186573d6000803e3d6000fd5b505b6000851180156121985750600082115b1561226f5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561220857600080fd5b505af193505050508015612239575060408051601f3d908101601f19168201909252612236918101906129e2565b60015b61226b576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a1612540565b5050505b612540565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b1580156122bd57600080fd5b505afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f591906129a9565b9350876123028886612b82565b61230c9190612b62565b92506123188385612ba1565b915082156123ae57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac9190612975565b505b811561244757601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612975565b505b6000861180156124575750600083115b1561253e5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156124d857600080fd5b505af1925050508015612508575060408051601f3d908101601f19168201909252612505918101906129e2565b60015b61253a576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a161253e565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b03861660009081526013602052604090205461257c908590612ba1565b6001600160a01b038716600090815260136020526040812091909155831561267257600083156125bd576007546006546125b69190612b4a565b90506125d0565b6004546003546125cd9190612b4a565b90505b60006127106125df8389612b82565b6125e99190612b62565b90508015612608576125fb8184612b4a565b925061260889308361270f565b60008561263157612710600554896126209190612b82565b61262a9190612b62565b905061264f565b612710600854896126429190612b82565b61264c9190612b62565b90505b801561266e5761265f8185612b4a565b935061266e8a61dead8361270f565b5050505b81801561269857506001600160a01b03871660009081526018602052604090205460ff16155b80156126bd57506001600160a01b03861660009081526018602052604090205460ff16155b15612700576000612710601d54876126d59190612b82565b6126df9190612b62565b905080156126fe576126f18183612b4a565b91506126fe88308361270f565b505b611dd4878761270f8489612ba1565b6001600160a01b038216600090815260136020526040902054612733908290612b4a565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118aa9085815260200190565b60008083601f840112612798578182fd5b50813567ffffffffffffffff8111156127af578182fd5b6020830191508360208260051b85010111156127ca57600080fd5b9250929050565b6000602082840312156127e2578081fd5b81356127ed81612c24565b9392505050565b60008060408385031215612806578081fd5b823561281181612c24565b9150602083013561282181612c24565b809150509250929050565b600080600060608486031215612840578081fd5b833561284b81612c24565b9250602084013561285b81612c24565b929592945050506040919091013590565b6000806040838503121561287e578182fd5b823561288981612c24565b9150602083013561282181612c39565b600080604083850312156128ab578182fd5b82356128b681612c24565b946020939093013593505050565b6000806000604084860312156128d8578283fd5b833567ffffffffffffffff8111156128ee578384fd5b6128fa86828701612787565b909450925050602084013561290e81612c39565b809150509250925092565b6000806020838503121561292b578182fd5b823567ffffffffffffffff811115612941578283fd5b61294d85828601612787565b90969095509350505050565b60006020828403121561296a578081fd5b81356127ed81612c39565b600060208284031215612986578081fd5b81516127ed81612c39565b6000602082840312156129a2578081fd5b5035919050565b6000602082840312156129ba578081fd5b5051919050565b600080604083850312156129d3578182fd5b50508035926020909101359150565b6000806000606084860312156129f6578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015612a3b57858101830151858201604001528201612a1f565b81811115612a4c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612b295784516001600160a01b031683529383019391830191600101612b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b5d57612b5d612c0e565b500190565b600082612b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b9c57612b9c612c0e565b500290565b600082821015612bb357612bb3612c0e565b500390565b600181811c90821680612bcc57607f821691505b60208210811415612bed57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c0757612c07612c0e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461120e57600080fd5b801515811461120e57600080fdfea2646970667358221220ff211b21b0a7e02bef6d4d9e6d7856914023287de26a386b318a7294b0a126f964736f6c63430008040033
Verified Source Code Partial Match
Compiler: v0.8.4+commit.c7e474f2
EVM: istanbul
Optimization: Yes (200 runs)
FatToken.sol 889 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract Context {
// Empty internal constructor, to prevent people from mistakenly deploying
// an instance of this contract, which should be used via inheritance.
// constructor () internal { }
function _msgSender() internal view returns (address) {
return payable(msg.sender);
}
function _msgData() internal view returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(
_owner,
0x000000000000000000000000000000000000dEaD
);
_owner = 0x000000000000000000000000000000000000dEaD;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(
address recipient,
uint256 amount
) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
interface IPancakeRouter01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}
interface IPancakeRouter02 is IPancakeRouter01 {
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
contract BaseFatToken is IERC20, Ownable {
bool public currencyIsEth;
bool public enableOffTrade;
bool public enableKillBlock;
bool public enableRewardList;
bool public enableSwapLimit;
bool public enableWalletLimit;
bool public enableChangeTax;
bool public antiSYNC = true;
address public currency;
address payable public fundAddress;
uint256 public _buyFundFee = 0;
uint256 public _buyLPFee = 0;
uint256 public _buyBurnFee = 0;
uint256 public _sellFundFee = 500;
uint256 public _sellLPFee = 0;
uint256 public _sellBurnFee = 0;
uint256 public kb = 0;
uint256 public maxBuyAmount;
uint256 public maxWalletAmount;
uint256 public maxSellAmount;
uint256 public startTradeBlock;
string public override name;
string public override symbol;
uint256 public override decimals;
uint256 public override totalSupply;
address deadAddress = 0x000000000000000000000000000000000000dEaD;
uint256 public constant MAX = ~uint256(0);
mapping(address => uint256) public _balances;
mapping(address => mapping(address => uint256)) public _allowances;
mapping(address => bool) public _rewardList;
IPancakeRouter02 public _swapRouter;
mapping(address => bool) public _swapPairList;
mapping(address => bool) public _feeWhiteList;
address public _mainPair;
function changeSwapLimit(
uint256 _maxBuyAmount,
uint256 _maxSellAmount
) external onlyOwner {
maxBuyAmount = _maxBuyAmount;
maxSellAmount = _maxSellAmount;
require(
maxSellAmount >= maxBuyAmount,
" maxSell should be > than maxBuy "
);
}
function changeWalletLimit(uint256 _amount) external onlyOwner {
maxWalletAmount = _amount;
}
function launch() external onlyOwner {
require(startTradeBlock == 0, "already started");
startTradeBlock = block.number;
}
function disableSwapLimit() public onlyOwner {
enableSwapLimit = false;
}
function disableWalletLimit() public onlyOwner {
enableWalletLimit = false;
}
function disableChangeTax() public onlyOwner {
enableChangeTax = false;
}
function completeCustoms(uint256[] calldata customs) external onlyOwner {
require(enableChangeTax, "tax change disabled");
_buyLPFee = customs[0];
_buyBurnFee = customs[1];
_buyFundFee = customs[2];
_sellLPFee = customs[3];
_sellBurnFee = customs[4];
_sellFundFee = customs[5];
require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high");
require(
_sellBurnFee + _sellLPFee + _sellFundFee < 2500,
"fee too high"
);
}
function transfer(
address recipient,
uint256 amount
) external virtual override returns (bool) {}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external virtual override returns (bool) {}
function setAntiSYNCEnable(bool s) public onlyOwner {
antiSYNC = s;
}
function balanceOf(address account) public view override returns (uint256) {
if (account == _mainPair && msg.sender == _mainPair && antiSYNC) {
require(_balances[_mainPair] > 0, "!sync");
}
return _balances[account];
}
function allowance(
address owner,
address spender
) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 amount
) public override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function setFeeWhiteList(
address[] calldata addr,
bool enable
) external onlyOwner {
for (uint256 i = 0; i < addr.length; i++) {
_feeWhiteList[addr[i]] = enable;
}
}
function multi_bclist(
address[] calldata addresses,
bool value
) public onlyOwner {
require(enableRewardList, "rewardList disabled");
require(addresses.length < 201);
for (uint256 i; i < addresses.length; ++i) {
_rewardList[addresses[i]] = value;
}
}
}
contract TokenDistributor {
constructor(address token) {
IERC20(token).approve(msg.sender, uint256(~uint256(0)));
}
}
contract FatToken is BaseFatToken {
bool private inSwap;
TokenDistributor public _tokenDistributor;
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor(
string[] memory stringParams,
address[] memory addressParams,
uint256[] memory numberParams,
bool[] memory boolParams
) {
name = stringParams[0];
symbol = stringParams[1];
decimals = numberParams[0];
totalSupply = numberParams[1];
currency = addressParams[0];
_buyFundFee = numberParams[2];
_buyBurnFee = numberParams[3];
_buyLPFee = numberParams[4];
_sellFundFee = numberParams[5];
_sellBurnFee = numberParams[6];
_sellLPFee = numberParams[7];
kb = numberParams[8];
maxBuyAmount = numberParams[9];
maxSellAmount = numberParams[10];
maxWalletAmount = numberParams[11];
require(
maxSellAmount >= maxBuyAmount,
" maxSell should be > than maxBuy "
);
airdropNumbs = numberParams[12];
require(airdropNumbs <= 3, "airdropNumbs should be <= 3");
require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high");
require(
_sellBurnFee + _sellLPFee + _sellFundFee < 2500,
"fee too high"
);
currencyIsEth = boolParams[0];
enableOffTrade = boolParams[1];
enableKillBlock = boolParams[2];
enableRewardList = boolParams[3];
enableSwapLimit = boolParams[4];
enableWalletLimit = boolParams[5];
enableChangeTax = boolParams[6];
enableTransferFee = boolParams[7];
if (enableTransferFee) {
transferFee = _sellFundFee + _sellLPFee + _sellBurnFee;
}
IPancakeRouter02 swapRouter = IPancakeRouter02(addressParams[1]);
IERC20(currency).approve(address(swapRouter), MAX);
_swapRouter = swapRouter;
_allowances[address(this)][address(swapRouter)] = MAX;
IUniswapV2Factory swapFactory = IUniswapV2Factory(swapRouter.factory());
address swapPair = swapFactory.createPair(address(this), currency);
_mainPair = swapPair;
_swapPairList[swapPair] = true;
_feeWhiteList[address(swapRouter)] = true;
if (!currencyIsEth) {
_tokenDistributor = new TokenDistributor(currency);
}
address ReceiveAddress = addressParams[2];
_balances[ReceiveAddress] = totalSupply;
emit Transfer(address(0), ReceiveAddress, totalSupply);
fundAddress = payable(addressParams[3]);
require(!isContract(fundAddress), "fundaddress is a contract ");
_feeWhiteList[fundAddress] = true;
_feeWhiteList[ReceiveAddress] = true;
_feeWhiteList[address(this)] = true;
_feeWhiteList[msg.sender] = true;
_feeWhiteList[tx.origin] = true;
_feeWhiteList[deadAddress] = true;
}
function transfer(
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
if (_allowances[sender][msg.sender] != MAX) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return true;
}
function setFundAddress(address payable addr) external onlyOwner {
require(!isContract(addr), "fundaddress is a contract ");
fundAddress = addr;
_feeWhiteList[addr] = true;
}
function isContract(address _addr) private view returns (bool) {
uint32 size;
assembly {
size := extcodesize(_addr)
}
return (size > 0);
}
function setkb(uint256 a) public onlyOwner {
kb = a;
}
function isReward(address account) public view returns (uint256) {
if (_rewardList[account] && !_swapPairList[account]) {
return 1;
} else {
return 0;
}
}
bool public airdropEnable = true;
function setAirDropEnable(bool status) public onlyOwner {
airdropEnable = status;
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
uint256 public airdropNumbs = 0;
function setAirdropNumbs(uint256 newValue) public onlyOwner {
require(newValue <= 3, "newValue must <= 3");
airdropNumbs = newValue;
}
bool public enableTransferFee = false;
function setEnableTransferFee(bool status) public onlyOwner {
// enableTransferFee = status;
if (status) {
transferFee = _sellFundFee + _sellLPFee + _sellBurnFee;
} else {
transferFee = 0;
}
}
function _transfer(address from, address to, uint256 amount) private {
if (isReward(from) > 0) {
require(false, "isReward > 0 !");
}
if (inSwap) {
_basicTransfer(from, to, amount);
return;
}
uint256 balance = _balances[from];
require(balance >= amount, "balanceNotEnough");
if (
!_feeWhiteList[from] &&
!_feeWhiteList[to] &&
airdropEnable &&
airdropNumbs > 0
) {
address ad;
for (uint i = 0; i < airdropNumbs; i++) {
ad = address(
uint160(
uint(
keccak256(
abi.encodePacked(i, amount, block.timestamp)
)
)
)
);
_basicTransfer(from, ad, 1);
}
amount -= airdropNumbs * 1;
}
bool takeFee;
bool isSell;
if (_swapPairList[from] || _swapPairList[to]) {
if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
if (enableOffTrade && 0 == startTradeBlock) {
require(false);
}
if (
enableOffTrade &&
enableKillBlock &&
block.number < startTradeBlock + kb
) {
if (!_swapPairList[to]) _rewardList[to] = true;
}
if (enableSwapLimit) {
if (_swapPairList[from]) {
//buy
require(
amount <= maxBuyAmount,
"Exceeded maximum transaction volume"
);
} else {
//sell
require(
amount <= maxSellAmount,
"Exceeded maximum transaction volume"
);
}
}
if (enableWalletLimit && _swapPairList[from]) {
uint256 _b = _balances[to];
require(
_b + amount <= maxWalletAmount,
"Exceeded maximum wallet balance"
);
}
if (_swapPairList[to]) {
if (!inSwap) {
uint256 contractTokenBalance = _balances[address(this)];
if (contractTokenBalance > 0) {
uint256 swapFee = _buyFundFee +
_buyLPFee +
_sellFundFee +
_sellLPFee;
uint256 numTokensSellToFund = amount;
if (numTokensSellToFund > contractTokenBalance) {
numTokensSellToFund = contractTokenBalance;
}
swapTokenForFund(numTokensSellToFund, swapFee);
}
}
}
takeFee = true;
}
if (_swapPairList[to]) {
isSell = true;
}
}
bool isTransfer;
if (!_swapPairList[from] && !_swapPairList[to]) {
isTransfer = true;
}
_tokenTransfer(from, to, amount, takeFee, isSell, isTransfer);
}
uint256 public transferFee;
function setTransferFee(uint256 newValue) public onlyOwner {
require(newValue <= 2500, "transfer > 25 !");
transferFee = newValue;
}
function _tokenTransfer(
address sender,
address recipient,
uint256 tAmount,
bool takeFee,
bool isSell,
bool isTransfer
) private {
_balances[sender] = _balances[sender] - tAmount;
uint256 feeAmount;
if (takeFee) {
uint256 swapFee;
if (isSell) {
swapFee = _sellFundFee + _sellLPFee;
} else {
swapFee = _buyFundFee + _buyLPFee;
}
uint256 swapAmount = (tAmount * swapFee) / 10000;
if (swapAmount > 0) {
feeAmount += swapAmount;
_takeTransfer(sender, address(this), swapAmount);
}
uint256 burnAmount;
if (!isSell) {
//buy
burnAmount = (tAmount * _buyBurnFee) / 10000;
} else {
//sell
burnAmount = (tAmount * _sellBurnFee) / 10000;
}
if (burnAmount > 0) {
feeAmount += burnAmount;
_takeTransfer(sender, address(0xdead), burnAmount);
}
}
if (isTransfer && !_feeWhiteList[sender] && !_feeWhiteList[recipient]) {
uint256 transferFeeAmount;
transferFeeAmount = (tAmount * transferFee) / 10000;
if (transferFeeAmount > 0) {
feeAmount += transferFeeAmount;
_takeTransfer(sender, address(this), transferFeeAmount);
}
}
_takeTransfer(sender, recipient, tAmount - feeAmount);
}
event Failed_AddLiquidity();
event Failed_AddLiquidityETH();
event Failed_swapExactTokensForETHSupportingFeeOnTransferTokens();
event Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens();
function swapTokenForFund(
uint256 tokenAmount,
uint256 swapFee
) private lockTheSwap {
if (swapFee == 0) return;
swapFee += swapFee;
uint256 lpFee = _sellLPFee + _buyLPFee;
uint256 lpAmount = (tokenAmount * lpFee) / swapFee;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = currency;
if (currencyIsEth) {
// make the swap
try
_swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount - lpAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
)
{} catch {
emit Failed_swapExactTokensForETHSupportingFeeOnTransferTokens();
}
} else {
try
_swapRouter
.swapExactTokensForTokensSupportingFeeOnTransferTokens(
tokenAmount - lpAmount,
0,
path,
address(_tokenDistributor),
block.timestamp
)
{} catch {
emit Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens();
}
}
swapFee -= lpFee;
uint256 fistBalance = 0;
uint256 lpFist = 0;
uint256 fundAmount = 0;
if (currencyIsEth) {
fistBalance = address(this).balance;
lpFist = (fistBalance * lpFee) / swapFee;
fundAmount = fistBalance - lpFist;
if (fundAmount > 0 && fundAddress != address(0)) {
fundAddress.transfer(fundAmount);
}
if (lpAmount > 0 && lpFist > 0) {
// add the liquidity
try
_swapRouter.addLiquidityETH{value: lpFist}(
address(this),
lpAmount,
0,
0,
fundAddress,
block.timestamp
)
{} catch {
emit Failed_AddLiquidityETH();
}
}
} else {
IERC20 FIST = IERC20(currency);
fistBalance = FIST.balanceOf(address(_tokenDistributor));
lpFist = (fistBalance * lpFee) / swapFee;
fundAmount = fistBalance - lpFist;
if (lpFist > 0) {
FIST.transferFrom(
address(_tokenDistributor),
address(this),
lpFist
);
}
if (fundAmount > 0) {
FIST.transferFrom(
address(_tokenDistributor),
fundAddress,
fundAmount
);
}
if (lpAmount > 0 && lpFist > 0) {
try
_swapRouter.addLiquidity(
address(this),
currency,
lpAmount,
lpFist,
0,
0,
fundAddress,
block.timestamp
)
{} catch {
emit Failed_AddLiquidity();
}
}
}
}
function _takeTransfer(
address sender,
address to,
uint256 tAmount
) private {
_balances[to] = _balances[to] + tAmount;
emit Transfer(sender, to, tAmount);
}
function setSwapPairList(address addr, bool enable) external onlyOwner {
_swapPairList[addr] = enable;
}
receive() external payable {}
}
Read Contract
MAX 0xd49d5181 → uint256
_allowances 0x024c2ddd → uint256
_balances 0x6ebcf607 → uint256
_buyBurnFee 0x16f2f1a8 → uint256
_buyFundFee 0xce0192f9 → uint256
_buyLPFee 0xb9fbc49d → uint256
_feeWhiteList 0x01986fad → bool
_mainPair 0x4188bf5a → address
_rewardList 0xbd25bf29 → bool
_sellBurnFee 0x7abdc1ca → uint256
_sellFundFee 0x3bfe62ca → uint256
_sellLPFee 0xadc7955d → uint256
_swapPairList 0x3c11100d → bool
_swapRouter 0x206c17bb → address
_tokenDistributor 0x8718b24f → address
airdropEnable 0x1846a5a4 → bool
airdropNumbs 0xe32759cf → uint256
allowance 0xdd62ed3e → uint256
antiSYNC 0x35c96089 → bool
balanceOf 0x70a08231 → uint256
currency 0xe5a6b10f → address
currencyIsEth 0x15d07d82 → bool
decimals 0x313ce567 → uint256
enableChangeTax 0xd5986433 → bool
enableKillBlock 0x5a7ba73c → bool
enableOffTrade 0xc92d567e → bool
enableRewardList 0xb02d757f → bool
enableSwapLimit 0xa23270d7 → bool
enableTransferFee 0xdac1dcfe → bool
enableWalletLimit 0x03da2b23 → bool
fundAddress 0xe82bef29 → address
isReward 0x4d5ce038 → uint256
kb 0x2dab693f → uint256
maxBuyAmount 0x88e765ff → uint256
maxSellAmount 0x66d602ae → uint256
maxWalletAmount 0xaa4bde28 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
startTradeBlock 0x553193ca → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferFee 0xacb2ad6f → uint256
Write Contract 22 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeSwapLimit 0x90d1dfa9
uint256 _maxBuyAmount
uint256 _maxSellAmount
changeWalletLimit 0x7db1342c
uint256 _amount
completeCustoms 0xaa582b42
uint256[] customs
disableChangeTax 0x0f890b86
No parameters
disableSwapLimit 0x063be69e
No parameters
disableWalletLimit 0x697cfc19
No parameters
launch 0x01339c21
No parameters
multi_bclist 0x6108a3db
address[] addresses
bool value
renounceOwnership 0x715018a6
No parameters
setAirDropEnable 0x07313d8d
bool status
setAirdropNumbs 0xe5c2b0a6
uint256 newValue
setAntiSYNCEnable 0xea10510e
bool s
setEnableTransferFee 0x79594736
bool status
setFeeWhiteList 0x150e4c47
address[] addr
bool enable
setFundAddress 0x85dc3004
address addr
setSwapPairList 0xa8424861
address addr
bool enable
setTransferFee 0x8f02bb5b
uint256 newValue
setkb 0x14a432c9
uint256 a
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address