Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xD47Cdf4c26fCed2BC7658662b68DF8Da085DfBF0
Balance 0 ETH
Nonce 1
Code Size 14672 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

14672 bytes
0x608060405260043610610211575f3560e01c80636ddd171311610117578063a9059cbb1161009f578063e6b2603b1161006e578063e6b2603b14610764578063f242ab411461077a578063f2fde38b146107a4578063f8b45b05146107cc578063fdd24dfe146107f657610218565b8063a9059cbb14610698578063c3f70b52146106d4578063dd62ed3e146106fe578063de96c5bb1461073a57610218565b8063751039fc116100e6578063751039fc146105ca57806385ecafd7146105e05780638da5cb5b1461061c57806395d89b41146106465780639d0014b11461067057610218565b80636ddd17131461052657806370a0823114610550578063715018a61461058c578063728d41c9146105a257610218565b80632b14ca561161019a5780634706240211610169578063470624021461045c57806352f7c9881461048657806357376198146104ae5780635c85974f146104d65780636cd56878146104fe57610218565b80632b14ca56146103a4578063313ce567146103ce57806339b296ff146103f85780633ecad2711461042057610218565b8063095ea7b3116101e1578063095ea7b3146102b05780630f8540e4146102ec578063108dfa431461031657806318160ddd1461033e57806323b872dd1461036857610218565b806299d3861461021c5780630445b6671461023257806306fdde031461025c5780630758d9241461028657610218565b3661021857005b5f80fd5b348015610227575f80fd5b50610230610820565b005b34801561023d575f80fd5b50610246610909565b6040516102539190612bad565b60405180910390f35b348015610267575f80fd5b5061027061090f565b60405161027d9190612c50565b60405180910390f35b348015610291575f80fd5b5061029a61099f565b6040516102a79190612cea565b60405180910390f35b3480156102bb575f80fd5b506102d660048036038101906102d19190612d6c565b6109c4565b6040516102e39190612dc4565b60405180910390f35b3480156102f7575f80fd5b506103006109e1565b60405161030d9190612dc4565b60405180910390f35b348015610321575f80fd5b5061033c60048036038101906103379190612e07565b6109f4565b005b348015610349575f80fd5b50610352610aa8565b60405161035f9190612bad565b60405180910390f35b348015610373575f80fd5b5061038e60048036038101906103899190612e45565b610ab1565b60405161039b9190612dc4565b60405180910390f35b3480156103af575f80fd5b506103b8610ba3565b6040516103c59190612bad565b60405180910390f35b3480156103d9575f80fd5b506103e2610ba9565b6040516103ef9190612eb0565b60405180910390f35b348015610403575f80fd5b5061041e60048036038101906104199190612ec9565b610bbe565b005b34801561042b575f80fd5b5061044660048036038101906104419190612f07565b610c92565b6040516104539190612dc4565b60405180910390f35b348015610467575f80fd5b50610470610caf565b60405161047d9190612bad565b60405180910390f35b348015610491575f80fd5b506104ac60048036038101906104a79190612f32565b610cb5565b005b3480156104b9575f80fd5b506104d460048036038101906104cf9190612d6c565b610d43565b005b3480156104e1575f80fd5b506104fc60048036038101906104f79190612f70565b610f2f565b005b348015610509575f80fd5b50610524600480360381019061051f9190612f07565b610fb5565b005b348015610531575f80fd5b5061053a611074565b6040516105479190612dc4565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190612f07565b611087565b6040516105839190612bad565b60405180910390f35b348015610597575f80fd5b506105a06110cd565b005b3480156105ad575f80fd5b506105c860048036038101906105c39190612f70565b611154565b005b3480156105d5575f80fd5b506105de6111da565b005b3480156105eb575f80fd5b5061060660048036038101906106019190612f07565b611284565b6040516106139190612dc4565b60405180910390f35b348015610627575f80fd5b506106306112a1565b60405161063d9190612faa565b60405180910390f35b348015610651575f80fd5b5061065a6112c8565b6040516106679190612c50565b60405180910390f35b34801561067b575f80fd5b5061069660048036038101906106919190612f70565b611358565b005b3480156106a3575f80fd5b506106be60048036038101906106b99190612d6c565b6113de565b6040516106cb9190612dc4565b60405180910390f35b3480156106df575f80fd5b506106e86113fc565b6040516106f59190612bad565b60405180910390f35b348015610709575f80fd5b50610724600480360381019061071f9190612fc3565b611402565b6040516107319190612bad565b60405180910390f35b348015610745575f80fd5b5061074e611484565b60405161075b9190612dc4565b60405180910390f35b34801561076f575f80fd5b50610778611497565b005b348015610785575f80fd5b5061078e6115f2565b60405161079b9190612faa565b60405180910390f35b3480156107af575f80fd5b506107ca60048036038101906107c59190612f07565b611617565b005b3480156107d7575f80fd5b506107e061170d565b6040516107ed9190612bad565b60405180910390f35b348015610801575f80fd5b5061080a611713565b6040516108179190612dc4565b60405180910390f35b610828611726565b73ffffffffffffffffffffffffffffffffffffffff166108466112a1565b73ffffffffffffffffffffffffffffffffffffffff161461089c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108939061304b565b60405180910390fd5b600f60179054906101000a900460ff16156108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e3906130b3565b60405180910390fd5b6001600f60176101000a81548160ff021916908315150217905550565b600b5481565b60606003805461091e906130fe565b80601f016020809104026020016040519081016040528092919081815260200182805461094a906130fe565b80156109955780601f1061096c57610100808354040283529160200191610995565b820191905f5260205f20905b81548152906001019060200180831161097857829003601f168201915b5050505050905090565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109d76109d0611726565b848461172d565b6001905092915050565b600f60179054906101000a900460ff1681565b6109fc611726565b73ffffffffffffffffffffffffffffffffffffffff16610a1a6112a1565b73ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061304b565b60405180910390fd5b81600f60146101000a81548160ff02191690831515021790555080600f60156101000a81548160ff0219169083151502179055505050565b5f600654905090565b5f610abd8484846118f4565b50610b9884610aca611726565b610b93856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4a611726565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120169092919063ffffffff16565b61172d565b600190509392505050565b600d5481565b5f60055f9054906101000a900460ff16905090565b610bc6611726565b73ffffffffffffffffffffffffffffffffffffffff16610be46112a1565b73ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c319061304b565b60405180910390fd5b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6002602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b610cbd611726565b73ffffffffffffffffffffffffffffffffffffffff16610cdb6112a1565b73ffffffffffffffffffffffffffffffffffffffff1614610d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d289061304b565b60405180910390fd5b81600c8190555080600d819055505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc990613178565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051602401610e1e929190613196565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610ea89190613201565b5f604051808303815f865af19150503d805f8114610ee1576040519150601f19603f3d011682016040523d82523d5f602084013e610ee6565b606091505b5050905080610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190613261565b60405180910390fd5b505050565b610f37611726565b73ffffffffffffffffffffffffffffffffffffffff16610f556112a1565b73ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa29061304b565b60405180910390fd5b8060098190555050565b610fbd611726565b73ffffffffffffffffffffffffffffffffffffffff16610fdb6112a1565b73ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110289061304b565b60405180910390fd5b80600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60149054906101000a900460ff1681565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110d5611726565b73ffffffffffffffffffffffffffffffffffffffff166110f36112a1565b73ffffffffffffffffffffffffffffffffffffffff1614611149576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111409061304b565b60405180910390fd5b6111525f612078565b565b61115c611726565b73ffffffffffffffffffffffffffffffffffffffff1661117a6112a1565b73ffffffffffffffffffffffffffffffffffffffff16146111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c79061304b565b60405180910390fd5b80600a8190555050565b6111e2611726565b73ffffffffffffffffffffffffffffffffffffffff166112006112a1565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d9061304b565b60405180910390fd5b5f600f60166101000a81548160ff021916908315150217905550600654600a81905550600654600981905550565b6001602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546112d7906130fe565b80601f0160208091040260200160405190810160405280929190818152602001828054611303906130fe565b801561134e5780601f106113255761010080835404028352916020019161134e565b820191905f5260205f20905b81548152906001019060200180831161133157829003601f168201915b5050505050905090565b611360611726565b73ffffffffffffffffffffffffffffffffffffffff1661137e6112a1565b73ffffffffffffffffffffffffffffffffffffffff16146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb9061304b565b60405180910390fd5b80600b8190555050565b5f6113f16113ea611726565b84846118f4565b506001905092915050565b60095481565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f60169054906101000a900460ff1681565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613178565b60405180910390fd5b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161156c906132a2565b5f6040518083038185875af1925050503d805f81146115a6576040519150601f19603f3d011682016040523d82523d5f602084013e6115ab565b606091505b50509050806115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690613300565b60405180910390fd5b50565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61161f611726565b73ffffffffffffffffffffffffffffffffffffffff1661163d6112a1565b73ffffffffffffffffffffffffffffffffffffffff1614611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a9061304b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f89061338e565b60405180910390fd5b61170a81612078565b50565b600a5481565b600f60159054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361179d575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016117949190612faa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361180d575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016118049190612faa565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118e79190612bad565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611965575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161195c9190612faa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d5575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016119cc9190612faa565b60405180910390fd5b5f8203611a0e576040517f67c8957700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601160149054906101000a900460ff1615611a3557611a2e848484612139565b905061200f565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ad3575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b2857600f60179054906101000a900460ff16611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e906133f6565b60405180910390fd5b5b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611bc6575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611bde5750600f60169054906101000a900460ff165b15611cd757600954821115611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f9061345e565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611cd657600a54611c9483611c8686611087565b61230390919063ffffffff16565b1115611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc906134c6565b60405180910390fd5b5b5b5f611ce130611087565b90505f600b548210159050808015611d065750601160149054906101000a900460ff16155b8015611d59575060025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d715750600f60149054906101000a900460ff165b8015611dc4575060015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e17575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e2657611e2582612360565b5b611ead846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120169092919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611ef98787612446565b611f0d57611f088787876125a2565b611f0f565b845b9050611f618160075f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461230390919063ffffffff16565b60075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fff9190612bad565b60405180910390a3600193505050505b9392505050565b5f83831115829061205d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120549190612c50565b60405180910390fd5b505f838561206b9190613511565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6121c1826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120169092919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506122528260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461230390919063ffffffff16565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122f09190612bad565b60405180910390a3600190509392505050565b5f8082846123119190613544565b905083811015612356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234d906135c1565b60405180910390fd5b8091505092915050565b6001601160146101000a81548160ff021916908315150217905550600f60159054906101000a900460ff161561239657600b5490505b5f4790506123a3826127bb565b5f6123b78247612a2b90919063ffffffff16565b90505f81111561242757600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612425573d5f803e3d5ffd5b505b50505f601160146101000a81548160ff02191690831515021790555050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806124e2575060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156124f0576001905061259c565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061258b575060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612598575f905061259c565b5f90505b92915050565b5f8060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156126235761261c600e5461260e600c5486612a7490919063ffffffff16565b612aeb90919063ffffffff16565b905061269f565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561269e5761269b600e5461268d600d5486612a7490919063ffffffff16565b612aeb90919063ffffffff16565b90505b5b5f81111561279e576126f78160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461230390919063ffffffff16565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127959190612bad565b60405180910390a35b6127b18184612a2b90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff8111156127d7576127d66135df565b5b6040519080825280602002602001820160405280156128055781602001602082028036833780820191505090505b50905030815f8151811061281c5761281b61360c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128e4919061364d565b816001815181106128f8576128f761360c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061295e3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461172d565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430426040518663ffffffff1660e01b81526004016129c1959493929190613768565b5f604051808303815f87803b1580156129d8575f80fd5b505af11580156129ea573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612a1f9291906137c0565b60405180910390a15050565b5f612a6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612016565b905092915050565b5f808303612a84575f9050612ae5565b5f8284612a9191906137ee565b9050828482612aa0919061385c565b14612ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad7906138fc565b60405180910390fd5b809150505b92915050565b5f612b2c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b34565b905092915050565b5f8083118290612b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b719190612c50565b60405180910390fd5b505f8385612b88919061385c565b9050809150509392505050565b5f819050919050565b612ba781612b95565b82525050565b5f602082019050612bc05f830184612b9e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612bfd578082015181840152602081019050612be2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c2282612bc6565b612c2c8185612bd0565b9350612c3c818560208601612be0565b612c4581612c08565b840191505092915050565b5f6020820190508181035f830152612c688184612c18565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612cb2612cad612ca884612c70565b612c8f565b612c70565b9050919050565b5f612cc382612c98565b9050919050565b5f612cd482612cb9565b9050919050565b612ce481612cca565b82525050565b5f602082019050612cfd5f830184612cdb565b92915050565b5f80fd5b5f612d1182612c70565b9050919050565b612d2181612d07565b8114612d2b575f80fd5b50565b5f81359050612d3c81612d18565b92915050565b612d4b81612b95565b8114612d55575f80fd5b50565b5f81359050612d6681612d42565b92915050565b5f8060408385031215612d8257612d81612d03565b5b5f612d8f85828601612d2e565b9250506020612da085828601612d58565b9150509250929050565b5f8115159050919050565b612dbe81612daa565b82525050565b5f602082019050612dd75f830184612db5565b92915050565b612de681612daa565b8114612df0575f80fd5b50565b5f81359050612e0181612ddd565b92915050565b5f8060408385031215612e1d57612e1c612d03565b5b5f612e2a85828601612df3565b9250506020612e3b85828601612df3565b9150509250929050565b5f805f60608486031215612e5c57612e5b612d03565b5b5f612e6986828701612d2e565b9350506020612e7a86828701612d2e565b9250506040612e8b86828701612d58565b9150509250925092565b5f60ff82169050919050565b612eaa81612e95565b82525050565b5f602082019050612ec35f830184612ea1565b92915050565b5f8060408385031215612edf57612ede612d03565b5b5f612eec85828601612d2e565b9250506020612efd85828601612df3565b9150509250929050565b5f60208284031215612f1c57612f1b612d03565b5b5f612f2984828501612d2e565b91505092915050565b5f8060408385031215612f4857612f47612d03565b5b5f612f5585828601612d58565b9250506020612f6685828601612d58565b9150509250929050565b5f60208284031215612f8557612f84612d03565b5b5f612f9284828501612d58565b91505092915050565b612fa481612d07565b82525050565b5f602082019050612fbd5f830184612f9b565b92915050565b5f8060408385031215612fd957612fd8612d03565b5b5f612fe685828601612d2e565b9250506020612ff785828601612d2e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613035602083612bd0565b915061304082613001565b602082019050919050565b5f6020820190508181035f83015261306281613029565b9050919050565b7f416c726561647920456e61626c656400000000000000000000000000000000005f82015250565b5f61309d600f83612bd0565b91506130a882613069565b602082019050919050565b5f6020820190508181035f8301526130ca81613091565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061311557607f821691505b602082108103613128576131276130d1565b5b50919050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f613162600c83612bd0565b915061316d8261312e565b602082019050919050565b5f6020820190508181035f83015261318f81613156565b9050919050565b5f6040820190506131a95f830185612f9b565b6131b66020830184612b9e565b9392505050565b5f81519050919050565b5f81905092915050565b5f6131db826131bd565b6131e581856131c7565b93506131f5818560208601612be0565b80840191505092915050565b5f61320c82846131d1565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f61324b601483612bd0565b915061325682613217565b602082019050919050565b5f6020820190508181035f8301526132788161323f565b9050919050565b50565b5f61328d5f836131c7565b91506132988261327f565b5f82019050919050565b5f6132ac82613282565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f6132ea601483612bd0565b91506132f5826132b6565b602082019050919050565b5f6020820190508181035f830152613317816132de565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613378602683612bd0565b91506133838261331e565b604082019050919050565b5f6020820190508181035f8301526133a58161336c565b9050919050565b7f5472616465204e6f7420416374697665210000000000000000000000000000005f82015250565b5f6133e0601183612bd0565b91506133eb826133ac565b602082019050919050565b5f6020820190508181035f83015261340d816133d4565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613448601383612bd0565b915061345382613414565b602082019050919050565b5f6020820190508181035f8301526134758161343c565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6134b0601183612bd0565b91506134bb8261347c565b602082019050919050565b5f6020820190508181035f8301526134dd816134a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61351b82612b95565b915061352683612b95565b925082820390508181111561353e5761353d6134e4565b5b92915050565b5f61354e82612b95565b915061355983612b95565b9250828201905080821115613571576135706134e4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6135ab601b83612bd0565b91506135b682613577565b602082019050919050565b5f6020820190508181035f8301526135d88161359f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061364781612d18565b92915050565b5f6020828403121561366257613661612d03565b5b5f61366f84828501613639565b91505092915050565b5f819050919050565b5f61369b61369661369184613678565b612c8f565b612b95565b9050919050565b6136ab81613681565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136e381612d07565b82525050565b5f6136f483836136da565b60208301905092915050565b5f602082019050919050565b5f613716826136b1565b61372081856136bb565b935061372b836136cb565b805f5b8381101561375b57815161374288826136e9565b975061374d83613700565b92505060018101905061372e565b5085935050505092915050565b5f60a08201905061377b5f830188612b9e565b61378860208301876136a2565b818103604083015261379a818661370c565b90506137a96060830185612f9b565b6137b66080830184612b9e565b9695505050505050565b5f6040820190506137d35f830185612b9e565b81810360208301526137e5818461370c565b90509392505050565b5f6137f882612b95565b915061380383612b95565b925082820261381181612b95565b91508282048414831517613828576138276134e4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61386682612b95565b915061387183612b95565b9250826138815761388061382f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e6602183612bd0565b91506138f18261388c565b604082019050919050565b5f6020820190508181035f830152613913816138da565b905091905056fea2646970667358221220d36fb284e56cb0556b775c997357435d88149d85576b1487ce394fec7ccb7d3264736f6c63430008160033

Verified Source Code Partial Match

Compiler: v0.8.22+commit.4fc1097e EVM: shanghai Optimization: No
FBX.sol 470 lines
/*

Website  : https://5bx.io
Twitter  : https://x.com/the_5bx
Telegram : https://t.me/FiveBX_Portal
Discord  : https://discord.gg/k9KJChgUrf

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

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

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);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract 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() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library Math {

    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;
    }

}

interface UniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface UniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC6093 {
    error ERC20InvalidApprover(address Approver);
    error ERC20InvalidSpender(address Sender);
    error ERC20InvalidSender(address Sender);
    error ERC20InvalidReceiver(address Receiver);
    error ERC20ZeroTransfer();

}

contract FBX is Context, IERC20, Ownable, IERC6093 {

    using Math for uint256;

    mapping (address => bool) public excludedFromFee;
    mapping (address => bool) public isMarketPair;

    string _name = "5BX Exchange";
    string _symbol = "FBX";
    uint8 _decimals = 18; 

    uint256 _totalSupply = 750_000 * 10 ** _decimals; 
        
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    // Anti Whale Mechanism with 1% of Max Bag and Transaction
    uint256 public maxTransaction =  _totalSupply.mul(1).div(100);     
    uint256 public maxWallet = _totalSupply.mul(2).div(100);        

    // Initial Swap Protection is 0.05%
    uint256 public swapThreshold = _totalSupply.mul(5).div(10000);

    // Fee Settings
    uint256 public buyFee = 3;
    uint256 public sellFee = 3;
    uint256 feeDenominator = 100;

    address private developerWallet;

    bool public swapEnabled = true;
    bool public swapProtection = false;
    bool public LimitsActive = true;

    bool public OpenTrade;

    UniswapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        developerWallet = msg.sender;

        UniswapRouter _dexRouter = UniswapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = UniswapFactory(_dexRouter.factory())
            .createPair(address(this), _dexRouter.WETH());

        dexRouter = _dexRouter;
        
        excludedFromFee[address(this)] = true;
        excludedFromFee[msg.sender] = true;

        isMarketPair[address(dexPair)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
       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(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }

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

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        if (sender == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (recipient == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if(amount == 0) {
            revert ERC20ZeroTransfer();
        }
    
        if (inSwap) {
            return basicTransfer(sender, recipient, amount);
        }
        else {

            if(!excludedFromFee[sender] && !excludedFromFee[recipient]) {
                require(OpenTrade,"Trade Not Active!");
            }

            if(!excludedFromFee[sender] && !excludedFromFee[recipient] && LimitsActive) {
                require(amount <= maxTransaction, "Exceeds maxTxAmount");
                if(!isMarketPair[recipient]) {
                    require(balanceOf(recipient).add(amount) <= maxWallet, "Exceeds maxWallet");
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !excludedFromFee[sender] &&
                !excludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 ToBeReceived = checkSwapFee(sender,recipient) ? amount : FeeCalculation(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(ToBeReceived);

            emit Transfer(sender, recipient, ToBeReceived);
            return true;

        }

    }

    function basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkSwapFee(address sender, address recipient) internal view returns (bool) {
        if(excludedFromFee[sender] || excludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }


    function FeeCalculation(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyFee).div(feeDenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellFee).div(feeDenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapProtection) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0)
            payable(developerWallet).transfer(amountReceived);

    }

    function enableTrade() external onlyOwner {
        require(!OpenTrade,"Already Enabled");
        OpenTrade = true;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            1, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external { 
        require(msg.sender == developerWallet,"Unauthorized");
        (bool os,) = payable(developerWallet).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,uint _amount) external {
        require(msg.sender == developerWallet,"Unauthorized");
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  developerWallet, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyFee = _buySide;
        sellFee = _sellSide;
    }

    function removeLimits() external onlyOwner { 
        LimitsActive = false;
        maxWallet = _totalSupply; 
        maxTransaction = _totalSupply;     
    }

    function setChargePair(address _adr,bool _status) external onlyOwner {
        excludedFromFee[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        maxWallet = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        maxTransaction = newLimit;
    }

    function setDeveloperWallet(address _newWallet) external onlyOwner {
        developerWallet = _newWallet;
    }

    function setSwapSetting(bool _swapenabled, bool _protected) 
        external onlyOwner 
    {
        swapEnabled = _swapenabled;
        swapProtection = _protected;
    }

    function setSwapThreshold(uint _threshold)
        external
        onlyOwner
    {
        swapThreshold = _threshold;
    }

}

Read Contract

LimitsActive 0xde96c5bb → bool
OpenTrade 0x0f8540e4 → bool
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyFee 0x47062402 → uint256
decimals 0x313ce567 → uint8
dexPair 0xf242ab41 → address
dexRouter 0x0758d924 → address
excludedFromFee 0x85ecafd7 → bool
isMarketPair 0x3ecad271 → bool
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellFee 0x2b14ca56 → uint256
swapEnabled 0x6ddd1713 → bool
swapProtection 0xfdd24dfe → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 16 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
enableTrade 0x0099d386
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
rescueFunds 0xe6b2603b
No parameters
rescueTokens 0x57376198
address _token
uint256 _amount
setChargePair 0x39b296ff
address _adr
bool _status
setDeveloperWallet 0x6cd56878
address _newWallet
setFee 0x52f7c988
uint256 _buySide
uint256 _sellSide
setMaxWalletLimit 0x728d41c9
uint256 newLimit
setSwapSetting 0x108dfa43
bool _swapenabled
bool _protected
setSwapThreshold 0x9d0014b1
uint256 _threshold
setTxLimit 0x5c85974f
uint256 newLimit
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