Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x0ceBCc61a5e8538E03373855ccb940Ee54dCa414
Balance 0 ETH
Nonce 1
Code Size 9985 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

9985 bytes
0x6080604052600436106101ba575f3560e01c8063715018a6116100eb578063a9059cbb11610089578063df20fd4911610063578063df20fd491461061b578063f6b20c3b14610643578063f887ea4014610659578063ffb54a9914610683576101c1565b8063a9059cbb14610579578063d7caddb2146105b5578063dd62ed3e146105df576101c1565b80638a8c523c116100c55780638a8c523c146104e55780638da5cb5b146104fb57806395d89b4114610525578063a8aa1b311461054f576101c1565b8063715018a61461047b57806375f0a87414610491578063893d20e8146104bb576101c1565b80632f54bf6e11610158578063516239de11610132578063516239de146103af578063571ac8b0146103d95780636ddd17131461041557806370a082311461043f576101c1565b80632f54bf6e1461030d578063313ce567146103495780633f4218e014610373576101c1565b806318160ddd1161019457806318160ddd1461025557806323b872dd1461027f5780632b112e49146102bb5780632c18c23d146102e5576101c1565b80630445b667146101c557806306fdde03146101ef578063095ea7b314610219576101c1565b366101c157005b5f5ffd5b3480156101d0575f5ffd5b506101d96106ad565b6040516101e69190611c4d565b60405180910390f35b3480156101fa575f5ffd5b506102036106b3565b6040516102109190611cd6565b60405180910390f35b348015610224575f5ffd5b5061023f600480360381019061023a9190611d7e565b6106ec565b60405161024c9190611dd6565b60405180910390f35b348015610260575f5ffd5b506102696107d9565b6040516102769190611c4d565b60405180910390f35b34801561028a575f5ffd5b506102a560048036038101906102a09190611def565b6107f9565b6040516102b29190611dd6565b60405180910390f35b3480156102c6575f5ffd5b506102cf6109ec565b6040516102dc9190611c4d565b60405180910390f35b3480156102f0575f5ffd5b5061030b60048036038101906103069190611e3f565b610aa1565b005b348015610318575f5ffd5b50610333600480360381019061032e9190611e6a565b610af3565b6040516103409190611dd6565b60405180910390f35b348015610354575f5ffd5b5061035d610b4a565b60405161036a9190611eb0565b60405180910390f35b34801561037e575f5ffd5b5061039960048036038101906103949190611e6a565b610b4f565b6040516103a69190611dd6565b60405180910390f35b3480156103ba575f5ffd5b506103c3610b6c565b6040516103d09190611c4d565b60405180910390f35b3480156103e4575f5ffd5b506103ff60048036038101906103fa9190611e6a565b610b72565b60405161040c9190611dd6565b60405180910390f35b348015610420575f5ffd5b50610429610ba4565b6040516104369190611dd6565b60405180910390f35b34801561044a575f5ffd5b5061046560048036038101906104609190611e6a565b610bb7565b6040516104729190611c4d565b60405180910390f35b348015610486575f5ffd5b5061048f610bcc565b005b34801561049c575f5ffd5b506104a5610c55565b6040516104b29190611ed8565b60405180910390f35b3480156104c6575f5ffd5b506104cf610c7a565b6040516104dc9190611ed8565b60405180910390f35b3480156104f0575f5ffd5b506104f9610ca1565b005b348015610506575f5ffd5b5061050f610d06565b60405161051c9190611ed8565b60405180910390f35b348015610530575f5ffd5b50610539610d2a565b6040516105469190611cd6565b60405180910390f35b34801561055a575f5ffd5b50610563610d63565b6040516105709190611ed8565b60405180910390f35b348015610584575f5ffd5b5061059f600480360381019061059a9190611d7e565b610d87565b6040516105ac9190611dd6565b60405180910390f35b3480156105c0575f5ffd5b506105c9610d9b565b6040516105d69190611c4d565b60405180910390f35b3480156105ea575f5ffd5b5061060560048036038101906106009190611ef1565b610da1565b6040516106129190611c4d565b60405180910390f35b348015610626575f5ffd5b50610641600480360381019061063c9190611f59565b610e23565b005b34801561064e575f5ffd5b50610657610efa565b005b348015610664575f5ffd5b5061066d610f52565b60405161067a9190611ff2565b60405180910390f35b34801561068e575f5ffd5b50610697610f77565b6040516106a49190611dd6565b60405180910390f35b60095481565b6040518060400160405280601381526020017f4a696e646f20446f6720eca784eb8f97eab09c0000000000000000000000000081525081565b5f8160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c79190611c4d565b60405180910390a36001905092915050565b6012600a6107e79190612167565b633b9aca006107f691906121b1565b81565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054146109d85761095b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8a9092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6109e3848484610fec565b90509392505050565b5f60015f5f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460015f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546012600a610a799190612167565b633b9aca00610a8891906121b1565b610a9291906121f2565b610a9c91906121f2565b905090565b610aaa33610af3565b610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae09061226f565b60405180910390fd5b80600c8190555050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b601281565b6003602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b5f610b9d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106ec565b9050919050565b600860159054906101000a900460ff1681565b6001602052805f5260405f205f915090505481565b610bd533610af3565b610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b9061226f565b60405180910390fd5b5f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610caa33610af3565b610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061226f565b60405180910390fd5b6001600860146101000a81548160ff021916908315150217905550565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600581526020017f4a494e444f00000000000000000000000000000000000000000000000000000081525081565b7f00000000000000000000000015b06d0ffeeb8f9f472a99d779dbdb69dd63f1b281565b5f610d93338484610fec565b905092915050565b600c5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e2c33610af3565b610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e629061226f565b60405180910390fd5b60146012600a610e7b9190612167565b633b9aca00610e8a91906121b1565b610e9491906122ba565b8110610ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecc9061235a565b60405180910390fd5b81600860156101000a81548160ff021916908315150217905550806009819055505050565b610f0333610af3565b610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f399061226f565b60405180910390fd5b5f6005819055505f600481905550565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860149054906101000a900460ff1681565b5f838311158290610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc89190611cd6565b60405180910390fd5b505f8385610fdf91906121f2565b9050809150509392505050565b5f600a5f9054906101000a900460ff16156110135761100c84848461140d565b9050611406565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156110b1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561110657600860149054906101000a900460ff16611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc906123c2565b60405180910390fd5b5b61110e6115d7565b801561116557507f00000000000000000000000015b06d0ffeeb8f9f472a99d779dbdb69dd63f1b273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156111805750600c54600b5461117c91906123e0565b4310155b1561118e5761118d611650565b5b611215826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8a9092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806112f2575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6113065761130185848661184e565b611308565b825b905061135a8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113f89190611c4d565b60405180910390a360019150505b9392505050565b5f611495826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f8a9092919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115268260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115c49190611c4d565b60405180910390a3600190509392505050565b5f600a5f9054906101000a900460ff161580156116005750600860159054906101000a900460ff165b801561164b575060095460015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b6001600a5f6101000a81548160ff0219169083151502179055505f60095490505f600267ffffffffffffffff81111561168c5761168b612413565b5b6040519080825280602002602001820160405280156116ba5781602001602082028036833780820191505090505b50905030815f815181106116d1576116d0612440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106117405761173f612440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016117fd95949392919061257d565b5f604051808303815f87803b158015611814575f5ffd5b505af1158015611826573d5f5f3e3d5ffd5b5050505043600b8190555050505f600a5f6101000a81548160ff021916908315150217905550565b5f5f60065490507f00000000000000000000000015b06d0ffeeb8f9f472a99d779dbdb69dd63f1b273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b257600454905061190c565b7f00000000000000000000000015b06d0ffeeb8f9f472a99d779dbdb69dd63f1b273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361190b5760055490505b5b5f84148061191957505f81145b156119275783915050611a67565b5f61194e60646119408488611acb90919063ffffffff16565b611b4290919063ffffffff16565b90505f811115611a4f576119a88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a6e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a469190611c4d565b60405180910390a35b611a628186611b8b90919063ffffffff16565b925050505b9392505050565b5f5f8284611a7c91906123e0565b905083811015611ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab89061261f565b60405180910390fd5b8091505092915050565b5f5f8303611adb575f9050611b3c565b5f8284611ae891906121b1565b9050828482611af791906122ba565b14611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e906126ad565b60405180910390fd5b809150505b92915050565b5f611b8383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bd4565b905092915050565b5f611bcc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f8a565b905092915050565b5f5f83118290611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c119190611cd6565b60405180910390fd5b505f8385611c2891906122ba565b9050809150509392505050565b5f819050919050565b611c4781611c35565b82525050565b5f602082019050611c605f830184611c3e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca882611c66565b611cb28185611c70565b9350611cc2818560208601611c80565b611ccb81611c8e565b840191505092915050565b5f6020820190508181035f830152611cee8184611c9e565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d2382611cfa565b9050919050565b611d3381611d19565b8114611d3d575f5ffd5b50565b5f81359050611d4e81611d2a565b92915050565b611d5d81611c35565b8114611d67575f5ffd5b50565b5f81359050611d7881611d54565b92915050565b5f5f60408385031215611d9457611d93611cf6565b5b5f611da185828601611d40565b9250506020611db285828601611d6a565b9150509250929050565b5f8115159050919050565b611dd081611dbc565b82525050565b5f602082019050611de95f830184611dc7565b92915050565b5f5f5f60608486031215611e0657611e05611cf6565b5b5f611e1386828701611d40565b9350506020611e2486828701611d40565b9250506040611e3586828701611d6a565b9150509250925092565b5f60208284031215611e5457611e53611cf6565b5b5f611e6184828501611d6a565b91505092915050565b5f60208284031215611e7f57611e7e611cf6565b5b5f611e8c84828501611d40565b91505092915050565b5f60ff82169050919050565b611eaa81611e95565b82525050565b5f602082019050611ec35f830184611ea1565b92915050565b611ed281611d19565b82525050565b5f602082019050611eeb5f830184611ec9565b92915050565b5f5f60408385031215611f0757611f06611cf6565b5b5f611f1485828601611d40565b9250506020611f2585828601611d40565b9150509250929050565b611f3881611dbc565b8114611f42575f5ffd5b50565b5f81359050611f5381611f2f565b92915050565b5f5f60408385031215611f6f57611f6e611cf6565b5b5f611f7c85828601611f45565b9250506020611f8d85828601611d6a565b9150509250929050565b5f819050919050565b5f611fba611fb5611fb084611cfa565b611f97565b611cfa565b9050919050565b5f611fcb82611fa0565b9050919050565b5f611fdc82611fc1565b9050919050565b611fec81611fd2565b82525050565b5f6020820190506120055f830184611fe3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561208d578086048111156120695761206861200b565b5b60018516156120785780820291505b808102905061208685612038565b945061204d565b94509492505050565b5f826120a55760019050612160565b816120b2575f9050612160565b81600181146120c857600281146120d257612101565b6001915050612160565b60ff8411156120e4576120e361200b565b5b8360020a9150848211156120fb576120fa61200b565b5b50612160565b5060208310610133831016604e8410600b84101617156121365782820a9050838111156121315761213061200b565b5b612160565b6121438484846001612044565b9250905081840481111561215a5761215961200b565b5b81810290505b9392505050565b5f61217182611c35565b915061217c83611e95565b92506121a97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612096565b905092915050565b5f6121bb82611c35565b91506121c683611c35565b92508282026121d481611c35565b915082820484148315176121eb576121ea61200b565b5b5092915050565b5f6121fc82611c35565b915061220783611c35565b925082820390508181111561221f5761221e61200b565b5b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f612259600683611c70565b915061226482612225565b602082019050919050565b5f6020820190508181035f8301526122868161224d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6122c482611c35565b91506122cf83611c35565b9250826122df576122de61228d565b5b828204905092915050565b7f416d6f756e7420746f6f20686967682c206d617820616c6c6f77656420696e205f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f612344602283611c70565b915061234f826122ea565b604082019050919050565b5f6020820190508181035f83015261237181612338565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6123ac601483611c70565b91506123b782612378565b602082019050919050565b5f6020820190508181035f8301526123d9816123a0565b9050919050565b5f6123ea82611c35565b91506123f583611c35565b925082820190508082111561240d5761240c61200b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61249061248b6124868461246d565b611f97565b611c35565b9050919050565b6124a081612476565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6124d881611d19565b82525050565b5f6124e983836124cf565b60208301905092915050565b5f602082019050919050565b5f61250b826124a6565b61251581856124b0565b9350612520836124c0565b805f5b8381101561255057815161253788826124de565b9750612542836124f5565b925050600181019050612523565b5085935050505092915050565b5f61256782611fc1565b9050919050565b6125778161255d565b82525050565b5f60a0820190506125905f830188611c3e565b61259d6020830187612497565b81810360408301526125af8186612501565b90506125be606083018561256e565b6125cb6080830184611c3e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612609601b83611c70565b9150612614826125d5565b602082019050919050565b5f6020820190508181035f830152612636816125fd565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612697602183611c70565b91506126a28261263d565b604082019050919050565b5f6020820190508181035f8301526126c48161268b565b905091905056fea2646970667358221220ea6d616324dc357f7f9aa5716191f82721bd34e1d983cfcdb2f5a461e0aa0b8064736f6c634300081d0033

Verified Source Code Partial Match

Compiler: v0.8.29+commit.ab55807c EVM: cancun Optimization: No
JINDO.sol 276 lines
// SPDX-License-Identifier: MIT

/*

Web: https://ethjindo.dog/
TG: https://t.me/ethjindodog
X: https://x.com/ethjindodog

*/

pragma solidity 0.8.29;

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

interface ERC20 {
    function getOwner() external view returns (address);
    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 Auth {
    address public owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
    }
}

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

interface IDEXRouter {
    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;
}

contract JINDO is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = unicode'Jindo Dog 진돗개';
    string public constant symbol = unicode'JINDO';
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 1_000_000_000 * 10**decimals;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;

    uint256 sellFee = 20;
    uint256 buyFee = 20;
    uint256 transferFee = 0;

    address public marketingWallet;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 200;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    uint256 public lastContractSellBlock;
    uint256 public blocksBetweenSell = 1;

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingWallet = 0x2E20a4A1C364F2Ed4c4B1Df51EF9fd20792bD687;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if(shouldSwapBack() && recipient == pair && (block.number >= lastContractSellBlock + blocksBetweenSell)) {
            swapBack();
        }


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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 multiplier = transferFee;

        if(recipient == pair) {
            multiplier = sellFee;
        } else if(sender == pair) {
            multiplier = buyFee;
        }

        if(amount == 0 || multiplier == 0){
            return amount;
        }

        uint256 feeAmount = amount.mul(multiplier).div(100);

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

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

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

    function swapdelay(uint256 _blocks) external onlyOwner {
        blocksBetweenSell = _blocks;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            payable(marketingWallet),
            block.timestamp
        );
        lastContractSellBlock = block.number;
    }

    function removeFees() external onlyOwner {
        buyFee = 0;
        sellFee = 0;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount < (totalSupply/20), "Amount too high, max allowed in 5%");

        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
blocksBetweenSell 0xd7caddb2 → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
isFeeExempt 0x3f4218e0 → bool
isOwner 0x2f54bf6e → bool
lastContractSellBlock 0x516239de → uint256
marketingWallet 0x75f0a874 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingOpen 0xffb54a99 → bool

Write Contract 9 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
enableTrading 0x8a8c523c
No parameters
removeFees 0xf6b20c3b
No parameters
renounceOwnership 0x715018a6
No parameters
setSwapBackSettings 0xdf20fd49
bool _enabled
uint256 _amount
swapdelay 0x2c18c23d
uint256 _blocks
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address