Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xF2eCa51ccF8629Da37b2686ae1d8018De7E969A3
Balance 0 ETH
Nonce 1
Code Size 14386 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

14386 bytes
0x6080604052600436106101f1575f3560e01c80635b16ebb71161010c578063a457c2d71161009f578063c1ec8d4b1161006e578063c1ec8d4b146106ca578063dd62ed3e14610706578063f01c75e114610742578063f2fde38b1461076a578063f8b45b0514610792576101f8565b8063a457c2d7146105fe578063a9059cbb1461063a578063ad5c464814610676578063bbc0c742146106a0576101f8565b8063751039fc116100db578063751039fc1461057e5780638a8c523c146105945780638da5cb5b146105aa57806395d89b41146105d4576101f8565b80635b16ebb7146104c8578063657f644b1461050457806370a082311461052c578063715018a614610568576101f8565b806323b872dd116101845780634221b508116101535780634221b5081461042657806343befc121461044e57806348ae238f146104765780634a62bb651461049e576101f8565b806323b872dd14610348578063313ce5671461038457806339509351146103ae5780633f4218e0146103ea576101f8565b806316f0115b116101c057806316f0115b146102a257806318160ddd146102cc5780631cb5a549146102f657806320d830551461031e576101f8565b806306e99fef146101fc57806306fdde0314610212578063095ea7b31461023c5780630dc9130614610278576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b506102106107bc565b005b34801561021d575f80fd5b506102266108fd565b60405161023391906126a2565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d9190612753565b61098d565b60405161026f91906127ab565b60405180910390f35b348015610283575f80fd5b5061028c6109aa565b604051610299919061281f565b60405180910390f35b3480156102ad575f80fd5b506102b66109ce565b6040516102c39190612847565b60405180910390f35b3480156102d7575f80fd5b506102e06109f2565b6040516102ed919061286f565b60405180910390f35b348015610301575f80fd5b5061031c600480360381019061031791906128b2565b6109fb565b005b348015610329575f80fd5b50610332610b75565b60405161033f919061286f565b60405180910390f35b348015610353575f80fd5b5061036e600480360381019061036991906128f0565b610b7b565b60405161037b91906127ab565b60405180910390f35b34801561038f575f80fd5b50610398610c6d565b6040516103a5919061295b565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190612753565b610c75565b6040516103e191906127ab565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b9190612974565b610d1c565b60405161041d91906127ab565b60405180910390f35b348015610431575f80fd5b5061044c600480360381019061044791906128b2565b610d39565b005b348015610459575f80fd5b50610474600480360381019061046f91906128b2565b610eaf565b005b348015610481575f80fd5b5061049c6004803603810190610497919061299f565b610f9b565b005b3480156104a9575f80fd5b506104b2611128565b6040516104bf91906127ab565b60405180910390f35b3480156104d3575f80fd5b506104ee60048036038101906104e99190612974565b61113a565b6040516104fb91906127ab565b60405180910390f35b34801561050f575f80fd5b5061052a600480360381019061052591906129dd565b611157565b005b348015610537575f80fd5b50610552600480360381019061054d9190612974565b61127c565b60405161055f919061286f565b60405180910390f35b348015610573575f80fd5b5061057c6112c2565b005b348015610589575f80fd5b50610592611410565b005b34801561059f575f80fd5b506105a86114bf565b005b3480156105b5575f80fd5b506105be611570565b6040516105cb9190612847565b60405180910390f35b3480156105df575f80fd5b506105e8611597565b6040516105f591906126a2565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f9190612753565b611627565b60405161063191906127ab565b60405180910390f35b348015610645575f80fd5b50610660600480360381019061065b9190612753565b61170d565b60405161066d91906127ab565b60405180910390f35b348015610681575f80fd5b5061068a61172a565b6040516106979190612a28565b60405180910390f35b3480156106ab575f80fd5b506106b461174e565b6040516106c191906127ab565b60405180910390f35b3480156106d5575f80fd5b506106f060048036038101906106eb9190612974565b611761565b6040516106fd91906127ab565b60405180910390f35b348015610711575f80fd5b5061072c6004803603810190610727919061299f565b61177e565b604051610739919061286f565b60405180910390f35b34801561074d575f80fd5b50610768600480360381019061076391906129dd565b611800565b005b348015610775575f80fd5b50610790600480360381019061078b9190612974565b611926565b005b34801561079d575f80fd5b506107a6611ae3565b6040516107b3919061286f565b60405180910390f35b6107c4611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612a8b565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161087590612ad6565b5f6040518083038185875af1925050503d805f81146108af576040519150601f19603f3d011682016040523d82523d5f602084013e6108b4565b606091505b505080915050806108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190612b34565b60405180910390fd5b50565b60606004805461090c90612b7f565b80601f016020809104026020016040519081016040528092919081815260200182805461093890612b7f565b80156109835780601f1061095a57610100808354040283529160200191610983565b820191905f5260205f20905b81548152906001019060200180831161096657829003601f168201915b5050505050905090565b5f6109a0610999611ae9565b8484611af0565b6001905092915050565b7f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156481565b7f0000000000000000000000004582f9104267aa4bdae3b5d937c6f17ec3d6cb8481565b5f600354905090565b610a03611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690612a8b565b60405180910390fd5b7f0000000000000000000000004582f9104267aa4bdae3b5d937c6f17ec3d6cb8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490612bf9565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60095481565b5f610b87848484611cb3565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bce611ae9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612c87565b60405180910390fd5b610c6185610c59611ae9565b858403611af0565b60019150509392505050565b5f6012905090565b5f610d12610c81611ae9565b848460025f610c8e611ae9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d0d9190612cd2565b611af0565b6001905092915050565b6007602052805f5260405f205f915054906101000a900460ff1681565b610d41611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612a8b565b60405180910390fd5b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612d75565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610eb7611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3a90612a8b565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610fa3611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612a8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490612ddd565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110d79190612847565b602060405180830381865afa1580156110f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111169190612e0f565b90506111238383836120a6565b505050565b600b5f9054906101000a900460ff1681565b6006602052805f5260405f205f915054906101000a900460ff1681565b61115f611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290612a8b565b60405180910390fd5b670de0b6b3a7640000606460016112006109f2565b61120a9190612e3a565b6112149190612ea8565b61121e9190612ea8565b811161125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690612f48565b60405180910390fd5b670de0b6b3a7640000816112739190612e3a565b600a8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6112ca611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90612a8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611418611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90612a8b565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b6114c7611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a90612a8b565b60405180910390fd5b6001600b60016101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546115a690612b7f565b80601f01602080910402602001604051908101604052809291908181526020018280546115d290612b7f565b801561161d5780601f106115f45761010080835404028352916020019161161d565b820191905f5260205f20905b81548152906001019060200180831161160057829003601f168201915b5050505050905090565b5f8060025f611634611ae9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590612fd6565b60405180910390fd5b6117026116f9611ae9565b85858403611af0565b600191505092915050565b5f611720611719611ae9565b8484611cb3565b6001905092915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600b60019054906101000a900460ff1681565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611808611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90612a8b565b60405180910390fd5b670de0b6b3a76400006103e860016118aa6109f2565b6118b49190612e3a565b6118be9190612ea8565b6118c89190612ea8565b8111611909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190090613064565b60405180910390fd5b670de0b6b3a76400008161191d9190612e3a565b60098190555050565b61192e611ae9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190612a8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1f906130f2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5590613180565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc39061320e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ca6919061286f565b60405180910390a3505050565b600b5f9054906101000a900460ff168015611d15575060075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d68575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561209657600b60019054906101000a900460ff16611dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db390613276565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e59575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f0057600954811115611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613304565b60405180910390fd5b600a54611eaf8361127c565b82611eba9190612cd2565b1115611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef29061336c565b60405180910390fd5b612095565b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f9d575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fec57600954811115611fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fde906133fa565b60405180910390fd5b612094565b60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661209357600a546120468361127c565b826120519190612cd2565b1115612092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120899061336c565b60405180910390fd5b5b5b5b5b6120a183838361212c565b505050565b6121278363a9059cbb60e01b84846040516024016120c5929190613418565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061238e565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361219a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612191906134af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ff9061353d565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561228c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612283906135cb565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461231c9190612cd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612380919061286f565b60405180910390a350505050565b5f6123ef826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166124539092919063ffffffff16565b90505f8151111561244e578080602001905181019061240e91906135fd565b61244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613698565b60405180910390fd5b5b505050565b606061246184845f8561246a565b90509392505050565b6060824710156124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a690613726565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516124d7919061377e565b5f6040518083038185875af1925050503d805f8114612511576040519150601f19603f3d011682016040523d82523d5f602084013e612516565b606091505b509150915061252787838387612533565b92505050949350505050565b60608315612594575f83510361258c5761254c856125a7565b61258b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612582906137de565b60405180910390fd5b5b82905061259f565b61259e83836125c9565b5b949350505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f825111156125db5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260f91906126a2565b60405180910390fd5b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561264f578082015181840152602081019050612634565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61267482612618565b61267e8185612622565b935061268e818560208601612632565b6126978161265a565b840191505092915050565b5f6020820190508181035f8301526126ba818461266a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ef826126c6565b9050919050565b6126ff816126e5565b8114612709575f80fd5b50565b5f8135905061271a816126f6565b92915050565b5f819050919050565b61273281612720565b811461273c575f80fd5b50565b5f8135905061274d81612729565b92915050565b5f8060408385031215612769576127686126c2565b5b5f6127768582860161270c565b92505060206127878582860161273f565b9150509250929050565b5f8115159050919050565b6127a581612791565b82525050565b5f6020820190506127be5f83018461279c565b92915050565b5f819050919050565b5f6127e76127e26127dd846126c6565b6127c4565b6126c6565b9050919050565b5f6127f8826127cd565b9050919050565b5f612809826127ee565b9050919050565b612819816127ff565b82525050565b5f6020820190506128325f830184612810565b92915050565b612841816126e5565b82525050565b5f60208201905061285a5f830184612838565b92915050565b61286981612720565b82525050565b5f6020820190506128825f830184612860565b92915050565b61289181612791565b811461289b575f80fd5b50565b5f813590506128ac81612888565b92915050565b5f80604083850312156128c8576128c76126c2565b5b5f6128d58582860161270c565b92505060206128e68582860161289e565b9150509250929050565b5f805f60608486031215612907576129066126c2565b5b5f6129148682870161270c565b93505060206129258682870161270c565b92505060406129368682870161273f565b9150509250925092565b5f60ff82169050919050565b61295581612940565b82525050565b5f60208201905061296e5f83018461294c565b92915050565b5f60208284031215612989576129886126c2565b5b5f6129968482850161270c565b91505092915050565b5f80604083850312156129b5576129b46126c2565b5b5f6129c28582860161270c565b92505060206129d38582860161270c565b9150509250929050565b5f602082840312156129f2576129f16126c2565b5b5f6129ff8482850161273f565b91505092915050565b5f612a12826127ee565b9050919050565b612a2281612a08565b82525050565b5f602082019050612a3b5f830184612a19565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a75602083612622565b9150612a8082612a41565b602082019050919050565b5f6020820190508181035f830152612aa281612a69565b9050919050565b5f81905092915050565b50565b5f612ac15f83612aa9565b9150612acc82612ab3565b5f82019050919050565b5f612ae082612ab6565b9150819050919050565b7f776974686472617720756e7375636365737366756c00000000000000000000005f82015250565b5f612b1e601583612622565b9150612b2982612aea565b602082019050919050565b5f6020820190508181035f830152612b4b81612b12565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b9657607f821691505b602082108103612ba957612ba8612b52565b5b50919050565b7f43616e6e6f742072656d6f7665206f726967696e616c20706f6f6c00000000005f82015250565b5f612be3601b83612622565b9150612bee82612baf565b602082019050919050565b5f6020820190508181035f830152612c1081612bd7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c71602883612622565b9150612c7c82612c17565b604082019050919050565b5f6020820190508181035f830152612c9e81612c65565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cdc82612720565b9150612ce783612720565b9250828201905080821115612cff57612cfe612ca5565b5b92915050565b7f43616e6e6f742072656d6f7665206578656d7074696f6e2066726f6d20706f6f5f8201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d5f602183612622565b9150612d6a82612d05565b604082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000005f82015250565b5f612dc7601a83612622565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b5f81519050612e0981612729565b92915050565b5f60208284031215612e2457612e236126c2565b5b5f612e3184828501612dfb565b91505092915050565b5f612e4482612720565b9150612e4f83612720565b9250828202612e5d81612720565b91508282048414831517612e7457612e73612ca5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eb282612720565b9150612ebd83612720565b925082612ecd57612ecc612e7b565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f32602283612622565b9150612f3d82612ed8565b604082019050919050565b5f6020820190508181035f830152612f5f81612f26565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612fc0602583612622565b9150612fcb82612f66565b604082019050919050565b5f6020820190508181035f830152612fed81612fb4565b9050919050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f61304e602f83612622565b915061305982612ff4565b604082019050919050565b5f6020820190508181035f83015261307b81613042565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6130dc602683612622565b91506130e782613082565b604082019050919050565b5f6020820190508181035f830152613109816130d0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61316a602483612622565b915061317582613110565b604082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131f8602283612622565b91506132038261319e565b604082019050919050565b5f6020820190508181035f830152613225816131ec565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f613260601283612622565b915061326b8261322c565b602082019050919050565b5f6020820190508181035f83015261328d81613254565b9050919050565b7f427579207472616e7366657220616d74206578636565647320746865206d61785f8201527f206275792e000000000000000000000000000000000000000000000000000000602082015250565b5f6132ee602583612622565b91506132f982613294565b604082019050919050565b5f6020820190508181035f83015261331b816132e2565b9050919050565b7f43616e6e6f7420457863656564206d61782077616c6c657400000000000000005f82015250565b5f613356601883612622565b915061336182613322565b602082019050919050565b5f6020820190508181035f8301526133838161334a565b9050919050565b7f53656c6c207472616e7366657220616d74206578636565647320746865206d615f8201527f782073656c6c2e00000000000000000000000000000000000000000000000000602082015250565b5f6133e4602783612622565b91506133ef8261338a565b604082019050919050565b5f6020820190508181035f830152613411816133d8565b9050919050565b5f60408201905061342b5f830185612838565b6134386020830184612860565b9392505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613499602583612622565b91506134a48261343f565b604082019050919050565b5f6020820190508181035f8301526134c68161348d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613527602383612622565b9150613532826134cd565b604082019050919050565b5f6020820190508181035f8301526135548161351b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6135b5602683612622565b91506135c08261355b565b604082019050919050565b5f6020820190508181035f8301526135e2816135a9565b9050919050565b5f815190506135f781612888565b92915050565b5f60208284031215613612576136116126c2565b5b5f61361f848285016135e9565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f613682602a83612622565b915061368d82613628565b604082019050919050565b5f6020820190508181035f8301526136af81613676565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f613710602683612622565b915061371b826136b6565b604082019050919050565b5f6020820190508181035f83015261373d81613704565b9050919050565b5f81519050919050565b5f61375882613744565b6137628185612aa9565b9350613772818560208601612632565b80840191505092915050565b5f613789828461374e565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f6137c8601d83612622565b91506137d382613794565b602082019050919050565b5f6020820190508181035f8301526137f5816137bc565b905091905056fea26469706673582212206985a37cb6f8f50e3ed2e62e6ba77b4c8cf8298a772c126270905443f75cf99564736f6c63430008140033

Verified Source Code Partial Match

Compiler: v0.8.20+commit.a1b79de6 EVM: shanghai Optimization: No
Marvinthemartian.sol 495 lines
/**
 *Submitted for verification at Etherscan.io on 2023-06-22
*/

// SPDX-License-Identifier: MIT                                                                               
                                                    
pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() 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);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface IUniswapV3Router {
    function factory() external view returns (address);
}

interface IUniswapV3Factory {
    function createPool(
        address tokenA,
        address tokenB,
        uint24 fee
    ) external returns (address pool);
}

contract Marvinthemartian is Ownable, ERC20 {

    IUniswapV3Router public immutable v3Router;
    address public immutable pool;
    IERC20 public immutable WETH;

    mapping (address => bool) public isPool;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isMaxTxExempt;


    uint256 public maxTransactionAmt;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;

    receive() payable external{}

    constructor() ERC20("Marvin", "Marvin"){
        address wethContract;
        address _v3Router;
        // @dev assumes WETH pair
        if(block.chainid == 1){
            wethContract = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
            _v3Router = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
        } else if(block.chainid == 5){
            wethContract  = 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6;
            _v3Router = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
        } else {
            revert("Chain not configured");
        }
        
        WETH = IERC20(wethContract);
        v3Router = IUniswapV3Router(_v3Router);
        pool = IUniswapV3Factory(v3Router.factory()).createPool(address(this), address(WETH), 10000);
        isPool[pool] = true;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(v3Router)] = true;
        isFeeExempt[address(0xdead)] = true;

        isMaxTxExempt[msg.sender] = true;
        isMaxTxExempt[address(v3Router)] = true;
        isMaxTxExempt[address(0xdead)] = true;

        uint256 totalSupply = 1 * 1e9 * 1e18;
        
        maxTransactionAmt = totalSupply * 5 / 1000; // @dev update
        maxWallet = totalSupply * 1 / 100; // @dev update

        _createInitialSupply(msg.sender, totalSupply);
        super._transfer(msg.sender, 0xF73237f2a914DfCaFf29C46c92F6dC3A91EAf748, totalSupply * 1 / 100);
        super._transfer(msg.sender, 0x780D3ffaF6eAcbd27A1A4551f8607A7A5C28Bb8f, totalSupply * 2 / 100);
        super._transfer(msg.sender, 0x75e89d5979E4f6Fba9F97c104c2F0AFB3F1dcB88, totalSupply * 10 / 100);
        super._transfer(msg.sender, 0x690469a320911A6719E267C07B3a002bc8078382, totalSupply * 1 / 100);
        super._transfer(msg.sender, 0x537C06b7fF61Fae1b2c683Fe8bf88bBC4f740365, totalSupply * 4 / 100);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if(limitsInEffect && !isFeeExempt[to] && !isFeeExempt[from]) {
            require(tradingActive, "Trading not active");
            //when buy
            if (isPool[from] && !isMaxTxExempt[to]) {
                require(amount <= maxTransactionAmt, "Buy transfer amt exceeds the max buy.");
                require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet");
            } 
            //when sell
            else if (isPool[to] && !isMaxTxExempt[from]) {
                require(amount <= maxTransactionAmt, "Sell transfer amt exceeds the max sell.");
            }
            //when transfer
            else if (!isMaxTxExempt[to]){
                require(amount + balanceOf(to) <= maxWallet, "Cannot Exceed max wallet");
            }
        }
        super._transfer(from, to, amount);
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function updateMaxAmt(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 1000)/1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmt = newNum * (10**18);
    }
    
    function updateMaxWalletAmt(uint256 newNum) external onlyOwner {
        require(newNum > (totalSupply() * 1 / 100)/1e18, "Cannot set maxWallet lower than 1%");
        maxWallet = newNum * (10**18);
    }

    function setIsFeeEx(address account, bool exempt) external onlyOwner {
        isFeeExempt[account] = exempt;
    }

    function setIsMaxTxEx(address account, bool exempt) external onlyOwner {
        require(!isPool[account], "Cannot remove exemption from pool");
        isMaxTxExempt[account] = exempt;
    }

    function setIsPool(address _pool, bool _isPool) external onlyOwner {
        require(_pool != address(pool), "Cannot remove original pool");
        isPool[_pool] = _isPool;
    }

    function sendEth() external onlyOwner {
        bool success;
        (success, ) = msg.sender.call{value: address(this).balance}("");
        require(success, "withdraw unsuccessful");
    }

    function transferToken(address _token, address _to) external onlyOwner {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        SafeERC20.safeTransfer(IERC20(_token),_to, _contractBalance);
    }
}

Read Contract

WETH 0xad5c4648 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isFeeExempt 0x3f4218e0 → bool
isMaxTxExempt 0xc1ec8d4b → bool
isPool 0x5b16ebb7 → bool
limitsInEffect 0x4a62bb65 → bool
maxTransactionAmt 0x20d83055 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pool 0x16f0115b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingActive 0xbbc0c742 → bool
v3Router 0x0dc91306 → address

Write Contract 16 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableTrading 0x8a8c523c
No parameters
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
sendEth 0x06e99fef
No parameters
setIsFeeEx 0x43befc12
address account
bool exempt
setIsMaxTxEx 0x4221b508
address account
bool exempt
setIsPool 0x1cb5a549
address _pool
bool _isPool
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
transferToken 0x48ae238f
address _token
address _to
updateMaxAmt 0xf01c75e1
uint256 newNum
updateMaxWalletAmt 0x657f644b
uint256 newNum

Recent Transactions

No transactions found for this address