Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x1d615cb105825b641512de22d480D5AF2d7fdB55
Balance 1.0000 ETH
Nonce 1
Code Size 12902 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

12902 bytes
0x6080604052600436106101185760003560e01c806370a08231116100a05780638f9a55c0116100645780638f9a55c01461036257806395d89b411461038d578063a9059cbb146103b8578063bf474bed146103f5578063dd62ed3e146104205761011f565b806370a08231146102a1578063715018a6146102de5780637d1db4a5146102f557806380ae4ebc146103205780638da5cb5b146103375761011f565b80631c1702f3116100e75780631c1702f3146101e257806323b872dd146101f9578063313ce567146102365780634a30b3861461026157806361df9f98146102785761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b604051610146919061232e565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906123e9565b61049a565b6040516101839190612444565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b6040516101ae919061246e565b60405180910390f35b3480156101c357600080fd5b506101cc6104d7565b6040516101d9919061246e565b60405180910390f35b3480156101ee57600080fd5b506101f76104fb565b005b34801561020557600080fd5b50610220600480360381019061021b9190612489565b61066f565b60405161022d9190612444565b60405180910390f35b34801561024257600080fd5b5061024b610748565b60405161025891906124f8565b60405180910390f35b34801561026d57600080fd5b50610276610751565b005b34801561028457600080fd5b5061029f600480360381019061029a9190612513565b610881565b005b3480156102ad57600080fd5b506102c860048036038101906102c39190612553565b6109ca565b6040516102d5919061246e565b60405180910390f35b3480156102ea57600080fd5b506102f3610a13565b005b34801561030157600080fd5b5061030a610b66565b604051610317919061246e565b60405180910390f35b34801561032c57600080fd5b50610335610b6c565b005b34801561034357600080fd5b5061034c6110c8565b604051610359919061258f565b60405180910390f35b34801561036e57600080fd5b506103776110f1565b604051610384919061246e565b60405180910390f35b34801561039957600080fd5b506103a26110f7565b6040516103af919061232e565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da91906123e9565b611134565b6040516103ec9190612444565b60405180910390f35b34801561040157600080fd5b5061040a611152565b604051610417919061246e565b60405180910390f35b34801561042c57600080fd5b50610447600480360381019061044291906125aa565b611171565b604051610454919061246e565b60405180910390f35b60606040518060400160405280600a81526020017f3078526f75746572416900000000000000000000000000000000000000000000815250905090565b60006104ae6104a76111f8565b8484611200565b6001905092915050565b6009600a6104c6919061274c565b620f42406104d49190612797565b81565b60006009600a6104e7919061274c565b6305f5e1006104f69190612797565b905090565b6105036111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058790612825565b60405180910390fd5b600d60009054906101000a900460ff16156105e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d790612891565b60405180910390fd5b6001600d60026101000a81548160ff0219169083151502179055506001600d60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600d60009054906101000a900460ff16600d60029054906101000a900460ff166040516106659291906128b1565b60405180910390a1565b600061067c848484611394565b61073d846106886111f8565b6107388560405180606001604052806028815260200161320960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ee6111f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d869092919063ffffffff16565b611200565b600190509392505050565b60006009905090565b6107596111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd90612825565b60405180910390fd5b6009600a6107f4919061274c565b6305f5e1006108039190612797565b600b819055506009600a610817919061274c565b6305f5e1006108269190612797565b600c819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a61085b919061274c565b6305f5e10061086a9190612797565b604051610877919061246e565b60405180910390a1565b6108896111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090d90612825565b60405180910390fd5b601e82111580156109285750601e8111155b80156109405750600d60009054906101000a900460ff165b61097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690612926565b60405180910390fd5b81600781905550806008819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516109be929190612946565b60405180910390a15050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a1b6111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612825565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b610b746111f8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890612825565b60405180910390fd5b600d60009054906101000a900460ff1615610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906129bb565b60405180910390fd5b6000610cb0610c996064610c8b60196009600a610c6e919061274c565b6305f5e100610c7d9190612797565b611dea90919063ffffffff16565b611e6490919063ffffffff16565b610ca2306109ca565b611eae90919063ffffffff16565b9050734752ba5dbc23f44d87826276bf6fd6b1c372ad24600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d3c919061274c565b6305f5e100610d4b9190612797565b611200565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de191906129f0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8e91906129f0565b6040518363ffffffff1660e01b8152600401610eab929190612a1d565b6020604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee91906129f0565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f7a6111f8565b426040518863ffffffff1660e01b8152600401610f9c96959493929190612a8b565b60606040518083038185885af1158015610fba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fdf9190612b01565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611081929190612b54565b6020604051808303816000875af11580156110a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c49190612ba9565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600581526020017f3078524149000000000000000000000000000000000000000000000000000000815250905090565b60006111486111416111f8565b8484611394565b6001905092915050565b6009600a611160919061274c565b62030d4061116e9190612797565b81565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612c22565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611387919061246e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113fe5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612c8e565b60405180910390fd5b60008111611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612d20565b60405180910390fd5b600061148a6110c8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114f857506114c86110c8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ac957600d60009054906101000a900460ff166115f257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115b25750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612d8c565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561169d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116f35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117ae57600b5482111561173d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173490612df8565b60405180910390fd5b600c548261174a856109ca565b6117549190612e18565b1115611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90612e98565b60405180910390fd5b600960008154809291906117a890612eb8565b91905055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561183757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611876576064611865602860095411611852576019611856565b6008545b84611dea90919063ffffffff16565b61186f9190612f2f565b905061193b565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118ff57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561193a57606461192d60236009541161191a57601961191e565b6007545b84611dea90919063ffffffff16565b6119379190612f2f565b90505b5b80600a600082825461194d9190612e18565b92505081905550600061195f306109ca565b9050600d60019054906101000a900460ff161580156119cb5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119e35750600d60029054906101000a900460ff165b8015611a0957506009600a6119f8919061274c565b62030d40611a069190612797565b81115b8015611a1757506023600954115b8015611a3f57506009600a611a2c919061274c565b62013c68611a3a9190612797565b600a54115b15611ac75760006009600a611a54919061274c565b620f4240611a629190612797565b8211611a6e5781611a8b565b6009600a611a7c919061274c565b620f4240611a8a9190612797565b5b9050611aa4818511611a9d5784611a9f565b815b611ef8565b60004790506000811115611abc57611abb47612171565b5b6000600a8190555050505b505b6000811115611bcd57611b2481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121dd90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc4919061246e565b60405180910390a35b611c1f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eae90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc6611c788284611eae90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121dd90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6b8486611eae90919063ffffffff16565b604051611d78919061246e565b60405180910390a350505050565b6000838311158290611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc5919061232e565b60405180910390fd5b5060008385611ddd9190612f60565b9050809150509392505050565b6000808303611dfc5760009050611e5e565b60008284611e0a9190612797565b9050828482611e199190612f2f565b14611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613006565b60405180910390fd5b809150505b92915050565b6000611ea683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061223b565b905092915050565b6000611ef083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d86565b905092915050565b6001600d60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f3057611f2f613026565b5b604051908082528060200260200182016040528015611f5e5781602001602082028036833780820191505090505b5090503081600081518110611f7657611f75613055565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561201d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204191906129f0565b8160018151811061205557612054613055565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bc30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611200565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612120959493929190613142565b600060405180830381600087803b15801561213a57600080fd5b505af115801561214e573d6000803e3d6000fd5b50505050506000600d60016101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121d9573d6000803e3d6000fd5b5050565b60008082846121ec9190612e18565b905083811015612231576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612228906131e8565b60405180910390fd5b8091505092915050565b60008083118290612282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612279919061232e565b60405180910390fd5b50600083856122919190612f2f565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d85780820151818401526020810190506122bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006123008261229e565b61230a81856122a9565b935061231a8185602086016122ba565b612323816122e4565b840191505092915050565b6000602082019050818103600083015261234881846122f5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061238082612355565b9050919050565b61239081612375565b811461239b57600080fd5b50565b6000813590506123ad81612387565b92915050565b6000819050919050565b6123c6816123b3565b81146123d157600080fd5b50565b6000813590506123e3816123bd565b92915050565b60008060408385031215612400576123ff612350565b5b600061240e8582860161239e565b925050602061241f858286016123d4565b9150509250929050565b60008115159050919050565b61243e81612429565b82525050565b60006020820190506124596000830184612435565b92915050565b612468816123b3565b82525050565b6000602082019050612483600083018461245f565b92915050565b6000806000606084860312156124a2576124a1612350565b5b60006124b08682870161239e565b93505060206124c18682870161239e565b92505060406124d2868287016123d4565b9150509250925092565b600060ff82169050919050565b6124f2816124dc565b82525050565b600060208201905061250d60008301846124e9565b92915050565b6000806040838503121561252a57612529612350565b5b6000612538858286016123d4565b9250506020612549858286016123d4565b9150509250929050565b60006020828403121561256957612568612350565b5b60006125778482850161239e565b91505092915050565b61258981612375565b82525050565b60006020820190506125a46000830184612580565b92915050565b600080604083850312156125c1576125c0612350565b5b60006125cf8582860161239e565b92505060206125e08582860161239e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126705780860481111561264c5761264b6125ea565b5b600185161561265b5780820291505b808102905061266985612619565b9450612630565b94509492505050565b6000826126895760019050612745565b816126975760009050612745565b81600181146126ad57600281146126b7576126e6565b6001915050612745565b60ff8411156126c9576126c86125ea565b5b8360020a9150848211156126e0576126df6125ea565b5b50612745565b5060208310610133831016604e8410600b841016171561271b5782820a905083811115612716576127156125ea565b5b612745565b6127288484846001612626565b9250905081840481111561273f5761273e6125ea565b5b81810290505b9392505050565b6000612757826123b3565b9150612762836124dc565b925061278f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612679565b905092915050565b60006127a2826123b3565b91506127ad836123b3565b92508282026127bb816123b3565b915082820484148315176127d2576127d16125ea565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061280f6020836122a9565b915061281a826127d9565b602082019050919050565b6000602082019050818103600083015261283e81612802565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061287b6014836122a9565b915061288682612845565b602082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b60006040820190506128c66000830185612435565b6128d36020830184612435565b9392505050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b6000612910600d836122a9565b915061291b826128da565b602082019050919050565b6000602082019050818103600083015261293f81612903565b9050919050565b600060408201905061295b600083018561245f565b612968602083018461245f565b9392505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b60006129a56013836122a9565b91506129b08261296f565b602082019050919050565b600060208201905081810360008301526129d481612998565b9050919050565b6000815190506129ea81612387565b92915050565b600060208284031215612a0657612a05612350565b5b6000612a14848285016129db565b91505092915050565b6000604082019050612a326000830185612580565b612a3f6020830184612580565b9392505050565b6000819050919050565b6000819050919050565b6000612a75612a70612a6b84612a46565b612a50565b6123b3565b9050919050565b612a8581612a5a565b82525050565b600060c082019050612aa06000830189612580565b612aad602083018861245f565b612aba6040830187612a7c565b612ac76060830186612a7c565b612ad46080830185612580565b612ae160a083018461245f565b979650505050505050565b600081519050612afb816123bd565b92915050565b600080600060608486031215612b1a57612b19612350565b5b6000612b2886828701612aec565b9350506020612b3986828701612aec565b9250506040612b4a86828701612aec565b9150509250925092565b6000604082019050612b696000830185612580565b612b76602083018461245f565b9392505050565b612b8681612429565b8114612b9157600080fd5b50565b600081519050612ba381612b7d565b92915050565b600060208284031215612bbf57612bbe612350565b5b6000612bcd84828501612b94565b91505092915050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612c0c601f836122a9565b9150612c1782612bd6565b602082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612c786020836122a9565b9150612c8382612c42565b602082019050919050565b60006020820190508181036000830152612ca781612c6b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d0a6029836122a9565b9150612d1582612cae565b604082019050919050565b60006020820190508181036000830152612d3981612cfd565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612d766014836122a9565b9150612d8182612d40565b602082019050919050565b60006020820190508181036000830152612da581612d69565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612de26019836122a9565b9150612ded82612dac565b602082019050919050565b60006020820190508181036000830152612e1181612dd5565b9050919050565b6000612e23826123b3565b9150612e2e836123b3565b9250828201905080821115612e4657612e456125ea565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e82601a836122a9565b9150612e8d82612e4c565b602082019050919050565b60006020820190508181036000830152612eb181612e75565b9050919050565b6000612ec3826123b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef557612ef46125ea565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f3a826123b3565b9150612f45836123b3565b925082612f5557612f54612f00565b5b828204905092915050565b6000612f6b826123b3565b9150612f76836123b3565b9250828203905081811115612f8e57612f8d6125ea565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff06021836122a9565b9150612ffb82612f94565b604082019050919050565b6000602082019050818103600083015261301f81612fe3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130b981612375565b82525050565b60006130cb83836130b0565b60208301905092915050565b6000602082019050919050565b60006130ef82613084565b6130f9818561308f565b9350613104836130a0565b8060005b8381101561313557815161311c88826130bf565b9750613127836130d7565b925050600181019050613108565b5085935050505092915050565b600060a082019050613157600083018861245f565b6131646020830187612a7c565b818103604083015261317681866130e4565b90506131856060830185612580565b613192608083018461245f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006131d2601b836122a9565b91506131dd8261319c565b602082019050919050565b60006020820190508181036000830152613201816131c5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122076e2c9846ece76e9bce08b922b3b1f53cf516734908d7bad2fcb632b9ead814f64736f6c63430008130033

Verified Source Code Partial Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: No
RouterAi.sol 334 lines
/**

    Website: https://0xrouterai.io
    Telegram: https://t.me/xRouterAi
    Twitter:  https://x.com/0xRouterai


**/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract RouterAi is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private  _taxWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax =25;
    uint256 private constant _initialSellTax=25;
    uint256 private constant _reduceBuyTaxAt=35;
    uint256 private constant _reduceSellTaxAt=40;
    uint256 private constant _preventSwapBefore=35;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _buyCount=0;
    uint256 private _countTax;
    
    string  private constant _name   = unicode"0xRouterAi";
    string  private constant _symbol = unicode"0xRAI";
    uint8   private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 private constant _countTrigger = 81000 * 10**_decimals;
    uint256 public  constant _taxSwapThreshold = 200000 * 10**_decimals;
    uint256 public  constant _maxTaxSwap = 1000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;   

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax (uint256 _valueBuy, uint256 _valueSell);
    event TradingActive (bool _tradingOpen,bool _swapEnabled);
    event maxAmount(uint256 _value);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address taxWallet) {
         _taxWallet = payable(taxWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

    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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERC20: approve the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) { 

            if(!tradingOpen){
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            
            if ( to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax)/100;    
            } 
            else if (from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax)/100;
            }

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance > _taxSwapThreshold && 
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ){
                uint256 getMinValue = (contractTokenBalance > _maxTaxSwap)?_maxTaxSwap:contractTokenBalance;
                swapTokensForEth((amount > getMinValue)?getMinValue:amount);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                _countTax = 0;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _initialize () external onlyOwner {
        require(!tradingOpen,"init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(
            uniswapV2Router.factory())
            .createPair(address(this), 
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
    }

    function _openTrading () external onlyOwner {
        require(!tradingOpen,"trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive (tradingOpen,swapEnabled);
    }

    function _removeLimits () external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit maxAmount (_tTotal);
    }
    
    function _setFinalTax (uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require(_valueBuy <= 30 && _valueSell <= 30 && tradingOpen, "Exceeds value");
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 8 functions

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

_initialize 0x80ae4ebc
No parameters
_openTrading 0x1c1702f3
No parameters
_removeLimits 0x4a30b386
No parameters
_setFinalTax 0x61df9f98
uint256 _valueBuy
uint256 _valueSell
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Token Balances (1)

View Transfers →
WETH 0

Recent Transactions

No transactions found for this address