Address Contract Partially Verified
Address
0xCE235132d3Ff7EdDFDd64A6872553F4b8e52Eb37
Balance
0 ETH
Nonce
1
Code Size
16309 bytes
Creator
0xb19CB687...7B59 at tx 0x288253bd...688bb2
Indexed Transactions
0
Contract Bytecode
16309 bytes
0x6080604052600436106101db575f3560e01c8063715018a611610101578063a9059cbb11610094578063ca5937c211610063578063ca5937c2146106ce578063dd62ed3e146106f8578063e9b71ed014610734578063f88de0c31461075e576101e2565b8063a9059cbb146105f0578063ba44172c1461062c578063c9567bf914610668578063c9bf91aa14610692576101e2565b80638c957ca6116100d05780638c957ca61461055c5780638da5cb5b1461058657806395d89b41146105b05780639e78fb4f146105da576101e2565b8063715018a6146104c8578063751039fc146104de5780637830b0721461050857806382247ec014610532576101e2565b80632063522d11610179578063313ce56711610148578063313ce567146103ea5780633ff7ada314610414578063599f5a731461045057806370a082311461048c576101e2565b80632063522d1461033057806323b872dd1461035a57806326f00d2814610396578063282fc2dc146103c0576101e2565b8063095ea7b3116101b5578063095ea7b3146102765780630a6e418a146102b25780631415f09b146102dc57806318160ddd14610306576101e2565b806301685686146101e657806306fdde03146102225780630790f3401461024c576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b5061020c60048036038101906102079190612e1a565b610788565b6040516102199190612e5f565b60405180910390f35b34801561022d575f80fd5b50610236610871565b6040516102439190612f02565b60405180910390f35b348015610257575f80fd5b506102606108ae565b60405161026d9190612e5f565b60405180910390f35b348015610281575f80fd5b5061029c60048036038101906102979190612f7c565b610974565b6040516102a99190612e5f565b60405180910390f35b3480156102bd575f80fd5b506102c6610991565b6040516102d39190612fc9565b60405180910390f35b3480156102e7575f80fd5b506102f061099a565b6040516102fd9190612fc9565b60405180910390f35b348015610311575f80fd5b5061031a6109a0565b6040516103279190612fc9565b60405180910390f35b34801561033b575f80fd5b506103446109c2565b6040516103519190612fc9565b60405180910390f35b348015610365575f80fd5b50610380600480360381019061037b9190612fe2565b6109c8565b60405161038d9190612e5f565b60405180910390f35b3480156103a1575f80fd5b506103aa610ac3565b6040516103b79190612e5f565b60405180910390f35b3480156103cb575f80fd5b506103d4610bbd565b6040516103e19190612fc9565b60405180910390f35b3480156103f5575f80fd5b506103fe610bc9565b60405161040b919061304d565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190612e1a565b610bd1565b6040516104479190612e5f565b60405180910390f35b34801561045b575f80fd5b5061047660048036038101906104719190613066565b610cbb565b6040516104839190612e5f565b60405180910390f35b348015610497575f80fd5b506104b260048036038101906104ad9190613066565b610d0d565b6040516104bf9190612fc9565b60405180910390f35b3480156104d3575f80fd5b506104dc610d53565b005b3480156104e9575f80fd5b506104f2610ea1565b6040516104ff9190612e5f565b60405180910390f35b348015610513575f80fd5b5061051c610f57565b6040516105299190612fc9565b60405180910390f35b34801561053d575f80fd5b50610546610f5d565b6040516105539190612fc9565b60405180910390f35b348015610567575f80fd5b50610570610f63565b60405161057d9190612fc9565b60405180910390f35b348015610591575f80fd5b5061059a610f69565b6040516105a791906130a0565b60405180910390f35b3480156105bb575f80fd5b506105c4610f90565b6040516105d19190612f02565b60405180910390f35b3480156105e5575f80fd5b506105ee610fcd565b005b3480156105fb575f80fd5b5061061660048036038101906106119190612f7c565b6114bd565b6040516106239190612e5f565b60405180910390f35b348015610637575f80fd5b50610652600480360381019061064d9190612e1a565b6114da565b60405161065f9190612e5f565b60405180910390f35b348015610673575f80fd5b5061067c6115c3565b6040516106899190612e5f565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190612e1a565b6116e5565b6040516106c59190612e5f565b60405180910390f35b3480156106d9575f80fd5b506106e26117ce565b6040516106ef9190612fc9565b60405180910390f35b348015610703575f80fd5b5061071e600480360381019061071991906130b9565b6117e4565b60405161072b9190612fc9565b60405180910390f35b34801561073f575f80fd5b50610748611866565b6040516107559190612fc9565b60405180910390f35b348015610769575f80fd5b5061077261186f565b60405161077f9190612e5f565b60405180910390f35b5f6107916119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081490613141565b60405180910390fd5b6032821115610861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610858906131a9565b60405180910390fd5b8160078190555060019050919050565b60606040518060400160405280600581526020017f4758346169000000000000000000000000000000000000000000000000000000815250905090565b5f6108b76119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a90613141565b60405180910390fd5b601960189054906101000a900460ff1615601960186101000a81548160ff0219169083151502179055506001905090565b5f6109876109806119cd565b84846119d4565b6001905092915050565b5f600754905090565b60155481565b5f6009600a6109af9190613323565b629896806109bd919061336d565b905090565b60175481565b5f6109d4848484611b97565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a1b6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a919061341e565b60405180910390fd5b610ab785610aa66119cd565b8584610ab2919061343c565b6119d4565b60019150509392505050565b5f610acc6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f90613141565b60405180910390fd5b601960149054906101000a900460ff16610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e906134b9565b60405180910390fd5b5f600981905550610bb6612459565b6001905090565b5f600680549050905090565b5f6009905090565b5f610bda6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90613141565b60405180910390fd5b610258821015610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290613547565b60405180910390fd5b81600a8190555060019050919050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d5b6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90613141565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f610eaa6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2d90613141565b60405180910390fd5b5f601960156101000a81548160ff0219169083151502179055506001905090565b60135481565b60145481565b60165481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4758340000000000000000000000000000000000000000000000000000000000815250905090565b610fd56119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105890613141565b60405180910390fd5b601960149054906101000a900460ff16156110b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a8906135d5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061114c3060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6111399190613323565b62989680611147919061336d565b6119d4565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111da9190613607565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611260573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112849190613607565b6040518363ffffffff1660e01b81526004016112a1929190613632565b6020604051808303815f875af11580156112bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e19190613607565b60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f61132a30610d0d565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80611376610f69565b426040518863ffffffff1660e01b81526004016113989695949392919061369b565b60606040518083038185885af11580156113b4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906113d9919061370e565b50505060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161147992919061375e565b6020604051808303815f875af1158015611495573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b991906137af565b5050565b5f6114d06114c96119cd565b8484611b97565b6001905092915050565b5f6114e36119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690613141565b60405180910390fd5b81600e8190555060048211156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190613824565b60405180910390fd5b60019050919050565b5f6115cc6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613141565b60405180910390fd5b601960149054906101000a900460ff16156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f9061388c565b60405180910390fd5b6001601960176101000a81548160ff0219169083151502179055506001601960146101000a81548160ff0219169083151502179055506001905090565b5f6116ee6119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613141565b60405180910390fd5b81600d8190555060048211156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90613824565b60405180910390fd5b60019050919050565b5f600a546009546117df91906138aa565b905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f601754905090565b5f6118786119cd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb90613141565b60405180910390fd5b601960149054906101000a900460ff16611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a9061394d565b60405180910390fd5b5f4790505f8111156119c55760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156119c3573d5f803e3d5ffd5b505b600191505090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a39906139b5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa790613a1d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b8a9190612fc9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc90613aab565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613b13565b60405180910390fd5b5f8111611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613b7b565b60405180910390fd5b5f611cbe610f69565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2c5750611cfc610f69565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561225f57601960149054906101000a900460ff16611e205760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611de0575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613be3565b60405180910390fd5b5b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ec9575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f1c575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fec57601960159054906101000a900460ff1615611fd457601354821115611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613c71565b60405180910390fd5b60145482611f8885610d0d565b611f9291906138aa565b1115611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca90613cd9565b60405180910390fd5b5b60125f815480929190611fe690613cf7565b91905055505b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561207457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ae5760646010546012541161208e57600c54612092565b600e545b8361209d919061336d565b6120a79190613d6b565b905061216d565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561213657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561216c576064600f546012541161215057600b54612154565b600d545b8361215f919061336d565b6121699190613d6b565b90505b5b5f61217730610d0d565b90505f601960169054906101000a900460ff161580156121e3575060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156121fb5750601960179054906101000a900460ff165b8015612208575060155482115b80156122175750601154601254115b9050801561225c5761223c612237856122328560165461277d565b61277d565b612795565b5f4790505f81111561225a5761225181612a00565b612259612459565b5b505b50505b5f811115612320578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122b391906138aa565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123179190612fc9565b60405180910390a35b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461236c919061343c565b92505081905550808261237f919061343c565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123ca91906138aa565b925050819055506123da84612a9f565b6123e383612a9f565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838561243e919061343c565b60405161244b9190612fc9565b60405180910390a350505050565b601960189054906101000a900460ff1615806124835750600a5460095461248091906138aa565b42105b8061249257505f600680549050145b61277b575f4790505f81036124a7575061277b565b5f6064600754836124b8919061336d565b6124c29190613d6b565b90505f81036124d257505061277b565b5f805b6006805490508110156125c7575f600682815481106124f7576124f6613d9b565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060175460015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106125b35760015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836125b091906138aa565b92505b5080806125bf90613cf7565b9150506124d5565b505f81036125d75750505061277b565b5f5b600680549050811015612731575f600682815481106125fb576125fa613d9b565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060175460015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061271d575f8360015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054866126b6919061336d565b6126c09190613d6b565b90505f811180156126d15750478111155b1561271b578173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612719573d5f803e3d5ffd5b505b505b50808061272990613cf7565b9150506125d9565b50426009819055507ff2838e4b541f90d41a1076a560d75e948f7d1008e72118a655568626a30b451f8260068054905060405161276f929190613dc8565b60405180910390a15050505b565b5f81831061278b578161278d565b825b905092915050565b6001601960166101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156127cc576127cb613def565b5b6040519080825280602002602001820160405280156127fa5781602001602082028036833780820191505090505b50905030815f8151811061281157612810613d9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d99190613607565b816001815181106128ed576128ec613d9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129533060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119d4565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016129b5959493929190613ed3565b5f604051808303815f87803b1580156129cc575f80fd5b505af11580156129de573d5f803e3d5ffd5b50505050505f601960166101000a81548160ff02191690831515021790555050565b5f606460075483612a11919061336d565b612a1b9190613d6b565b90505f8183612a2a919061343c565b90505f811115612a9a5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612a98573d5f803e3d5ffd5b505b505050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690505f60175460015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015905080151582151514612c5b578060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808015612b9c575081155b15612c0657600683908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612c21565b80158015612c115750815b15612c2057612c1f83612c60565b5b5b7f7c2aa84a8ac06fb77f6bbc9b6f33dbe8fb9d72ebdf6fc68802b6ef871bd7520d8382604051612c52929190613f2b565b60405180910390a15b505050565b5f5b600680549050811015612ddf578173ffffffffffffffffffffffffffffffffffffffff1660068281548110612c9a57612c99613d9b565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612dcc5760066001600680549050612cf1919061343c565b81548110612d0257612d01613d9b565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110612d3e57612d3d613d9b565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006805480612d9557612d94613f52565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612ddf565b8080612dd790613cf7565b915050612c62565b5050565b5f80fd5b5f819050919050565b612df981612de7565b8114612e03575f80fd5b50565b5f81359050612e1481612df0565b92915050565b5f60208284031215612e2f57612e2e612de3565b5b5f612e3c84828501612e06565b91505092915050565b5f8115159050919050565b612e5981612e45565b82525050565b5f602082019050612e725f830184612e50565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612eaf578082015181840152602081019050612e94565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612ed482612e78565b612ede8185612e82565b9350612eee818560208601612e92565b612ef781612eba565b840191505092915050565b5f6020820190508181035f830152612f1a8184612eca565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f4b82612f22565b9050919050565b612f5b81612f41565b8114612f65575f80fd5b50565b5f81359050612f7681612f52565b92915050565b5f8060408385031215612f9257612f91612de3565b5b5f612f9f85828601612f68565b9250506020612fb085828601612e06565b9150509250929050565b612fc381612de7565b82525050565b5f602082019050612fdc5f830184612fba565b92915050565b5f805f60608486031215612ff957612ff8612de3565b5b5f61300686828701612f68565b935050602061301786828701612f68565b925050604061302886828701612e06565b9150509250925092565b5f60ff82169050919050565b61304781613032565b82525050565b5f6020820190506130605f83018461303e565b92915050565b5f6020828403121561307b5761307a612de3565b5b5f61308884828501612f68565b91505092915050565b61309a81612f41565b82525050565b5f6020820190506130b35f830184613091565b92915050565b5f80604083850312156130cf576130ce612de3565b5b5f6130dc85828601612f68565b92505060206130ed85828601612f68565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61312b602083612e82565b9150613136826130f7565b602082019050919050565b5f6020820190508181035f8301526131588161311f565b9050919050565b7f526576656e75652073686172652063616e6e6f742065786365656420353025005f82015250565b5f613193601f83612e82565b915061319e8261315f565b602082019050919050565b5f6020820190508181035f8301526131c081613187565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561324957808604811115613225576132246131c7565b5b60018516156132345780820291505b8081029050613242856131f4565b9450613209565b94509492505050565b5f82613261576001905061331c565b8161326e575f905061331c565b8160018114613284576002811461328e576132bd565b600191505061331c565b60ff8411156132a05761329f6131c7565b5b8360020a9150848211156132b7576132b66131c7565b5b5061331c565b5060208310610133831016604e8410600b84101617156132f25782820a9050838111156132ed576132ec6131c7565b5b61331c565b6132ff8484846001613200565b92509050818404811115613316576133156131c7565b5b81810290505b9392505050565b5f61332d82612de7565b915061333883613032565b92506133657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613252565b905092915050565b5f61337782612de7565b915061338283612de7565b925082820261339081612de7565b915082820484148315176133a7576133a66131c7565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613408602883612e82565b9150613413826133ae565b604082019050919050565b5f6020820190508181035f830152613435816133fc565b9050919050565b5f61344682612de7565b915061345183612de7565b9250828203905081811115613469576134686131c7565b5b92915050565b7f54726164696e67206d75737420626520616374697665000000000000000000005f82015250565b5f6134a3601683612e82565b91506134ae8261346f565b602082019050919050565b5f6020820190508181035f8301526134d081613497565b9050919050565b7f496e74657276616c206d757374206265206174206c65617374203130206d696e5f8201527f7574657300000000000000000000000000000000000000000000000000000000602082015250565b5f613531602483612e82565b915061353c826134d7565b604082019050919050565b5f6020820190508181035f83015261355e81613525565b9050919050565b7f4c69717569646974792068617320616c7265616479206265656e20696e6974695f8201527f616c697a65640000000000000000000000000000000000000000000000000000602082015250565b5f6135bf602683612e82565b91506135ca82613565565b604082019050919050565b5f6020820190508181035f8301526135ec816135b3565b9050919050565b5f8151905061360181612f52565b92915050565b5f6020828403121561361c5761361b612de3565b5b5f613629848285016135f3565b91505092915050565b5f6040820190506136455f830185613091565b6136526020830184613091565b9392505050565b5f819050919050565b5f819050919050565b5f61368561368061367b84613659565b613662565b612de7565b9050919050565b6136958161366b565b82525050565b5f60c0820190506136ae5f830189613091565b6136bb6020830188612fba565b6136c8604083018761368c565b6136d5606083018661368c565b6136e26080830185613091565b6136ef60a0830184612fba565b979650505050505050565b5f8151905061370881612df0565b92915050565b5f805f6060848603121561372557613724612de3565b5b5f613732868287016136fa565b9350506020613743868287016136fa565b9250506040613754868287016136fa565b9150509250925092565b5f6040820190506137715f830185613091565b61377e6020830184612fba565b9392505050565b61378e81612e45565b8114613798575f80fd5b50565b5f815190506137a981613785565b92915050565b5f602082840312156137c4576137c3612de3565b5b5f6137d18482850161379b565b91505092915050565b7f4d757374206e6f742065786365656420342500000000000000000000000000005f82015250565b5f61380e601283612e82565b9150613819826137da565b602082019050919050565b5f6020820190508181035f83015261383b81613802565b9050919050565b7f54726164696e672068617320616c7265616479206265656e20656e61626c65645f82015250565b5f613876602083612e82565b915061388182613842565b602082019050919050565b5f6020820190508181035f8301526138a38161386a565b9050919050565b5f6138b482612de7565b91506138bf83612de7565b92508282019050808211156138d7576138d66131c7565b5b92915050565b7f54726164696e67206e6f74206163746976653b2063616e6e6f7420636c6561725f8201527f2045544800000000000000000000000000000000000000000000000000000000602082015250565b5f613937602483612e82565b9150613942826138dd565b604082019050919050565b5f6020820190508181035f8301526139648161392b565b9050919050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f61399f602083612e82565b91506139aa8261396b565b602082019050919050565b5f6020820190508181035f8301526139cc81613993565b9050919050565b7f45524332303a20617070726f766520746f207a65726f206164647265737300005f82015250565b5f613a07601e83612e82565b9150613a12826139d3565b602082019050919050565b5f6020820190508181035f830152613a34816139fb565b9050919050565b7f45524332303a207472616e736665722066726f6d207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a95602183612e82565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f45524332303a207472616e7366657220746f207a65726f2061646472657373005f82015250565b5f613afd601f83612e82565b9150613b0882613ac9565b602082019050919050565b5f6020820190508181035f830152613b2a81613af1565b9050919050565b7f5472616e7366657220616d6f756e74206d757374206265203e203000000000005f82015250565b5f613b65601b83612e82565b9150613b7082613b31565b602082019050919050565b5f6020820190508181035f830152613b9281613b59565b9050919050565b7f54726164696e6720686173206e6f74206265656e20656e61626c6564207965745f82015250565b5f613bcd602083612e82565b9150613bd882613b99565b602082019050919050565b5f6020820190508181035f830152613bfa81613bc1565b9050919050565b7f4578636565647320746865206d6178696d756d207472616e73616374696f6e205f8201527f616d6f756e740000000000000000000000000000000000000000000000000000602082015250565b5f613c5b602683612e82565b9150613c6682613c01565b604082019050919050565b5f6020820190508181035f830152613c8881613c4f565b9050919050565b7f4578636565647320746865206d6178696d756d2077616c6c65742073697a65005f82015250565b5f613cc3601f83612e82565b9150613cce82613c8f565b602082019050919050565b5f6020820190508181035f830152613cf081613cb7565b9050919050565b5f613d0182612de7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d3357613d326131c7565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d7582612de7565b9150613d8083612de7565b925082613d9057613d8f613d3e565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050613ddb5f830185612fba565b613de86020830184612fba565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613e4e81612f41565b82525050565b5f613e5f8383613e45565b60208301905092915050565b5f602082019050919050565b5f613e8182613e1c565b613e8b8185613e26565b9350613e9683613e36565b805f5b83811015613ec6578151613ead8882613e54565b9750613eb883613e6b565b925050600181019050613e99565b5085935050505092915050565b5f60a082019050613ee65f830188612fba565b613ef3602083018761368c565b8181036040830152613f058186613e77565b9050613f146060830185613091565b613f216080830184612fba565b9695505050505050565b5f604082019050613f3e5f830185613091565b613f4b6020830184612e50565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea264697066735822122053b92187c9bd759bae4b9a28bf4c553e9b014b0db564e8a4ef046f8ed38b45d464736f6c63430008140033
Verified Source Code Partial Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: No
tok.sol 706 lines
/**
*Submitted for verification at Etherscan.io on 2025-05-27
*/
// SPDX-License-Identifier: MIT
/*
GX4.AI — AI Agents Powering Autonomous GPU Compute with Revenue Sharing.
Dashboard : https://app.gx3.ai/
Website : https://gx3.ai/
Telegram : https://t.me/GX3Agent
X : https://twitter.com/GX3Agent
*/
pragma solidity 0.8.20;
/* -------------------------
* Standard ERC20 Components
* -------------------------
*/
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
);
}
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);
}
}
/* --------------------------------------
* Uniswap Interfaces (Router and Factory)
* --------------------------------------
*/
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
/* -----------------------------
* GX4 Contract (Logic)
* -----------------------------
*/
contract GX4ai is Context, IERC20, Ownable {
// ---------------------
// Internal Mappings
// ---------------------
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private _isEligibleForRevenue;
// ---------------------
// Addresses
// ---------------------
address payable private _tWallet;
address private constant _bWallet = address(0xdead);
// ---------------------
// Revenue Sharing Variables
// ---------------------
address[] private _revenueEligibleWallets;
uint256 private _revenueSharePercentage = 30; // 30% of collected fees go to revenue sharing
uint256 private _minimumHoldingPercentage = 150; // 1.5% = 150 basis points (out of 10000)
uint256 private _lastRevenueDistribution;
uint256 private _revenueDistributionInterval = 1 hours; // Minimum time between distributions
// ---------------------
// Token Variables
// ---------------------
uint256 private _initBT = 18;
uint256 private _initST = 25;
uint256 private _endBT = 10;
uint256 private _endST = 12;
uint256 private _reduceBTThreshold = 30;
uint256 private _reduceSTThreshold = 45;
uint256 private _manageSwapThreshold= 40;
uint256 private _buyTransactionCount= 0;
// ---------------------
// Token Characteristics
// ---------------------
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 10000000 * 10**_decimals;
string private constant _name = unicode"GX4ai";
string private constant _symbol = unicode"GX4";
// ---------------------
// Limits & Thresholds
// ---------------------
uint256 public _maxTx = 100000 * 10**_decimals;
uint256 public _maxWallet = 100000 * 10**_decimals;
uint256 public _tSwapThreshold = 10000 * 10**_decimals;
uint256 public _maxTSwap = 100000 * 10**_decimals;
// ---------------------
// Revenue Sharing Threshold (1.5% of total supply)
// ---------------------
uint256 public _revenueThreshold = (_tTotal * _minimumHoldingPercentage) / 10000;
// ---------------------
// Uniswap Router / Pair
// ---------------------
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
// ---------------------
// Trading Flags
// ---------------------
bool private tradingOpen = false;
bool private limitEffect = true;
bool private inSwap = false;
bool private swapEnabled = false;
bool private revenueEnabled = true;
// ---------------------
// Events
// ---------------------
event RevenueDistributed(uint256 totalAmount, uint256 walletsCount);
event WalletEligibilityChanged(address wallet, bool eligible);
// ---------------------
// Lock Mechanism (Swap)
// ---------------------
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
// ----------------------------------------------------------------
// Constructor: Sets initial balances and excluded addresses
// ----------------------------------------------------------------
constructor(address payable tWalletAddress) {
_tWallet = tWalletAddress;
_balances[_msgSender()] = _tTotal;
_lastRevenueDistribution = block.timestamp;
// Excluding certain addresses from fee
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[_bWallet] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_tWallet] = true;
emit Transfer(address(0), _msgSender(), _tTotal);
}
// ----------------------------------------------------------------
// ERC20 Standard Functions
// ----------------------------------------------------------------
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);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
_approve(
sender,
_msgSender(),
currentAllowance - amount
);
return true;
}
// ----------------------------------------------------------------
// Internal Approval
// ----------------------------------------------------------------
function _approve(
address ownerAddr,
address spender,
uint256 amount
) private {
require(
ownerAddr != address(0),
"ERC20: approve from zero address"
);
require(
spender != address(0),
"ERC20: approve to zero address"
);
_allowances[ownerAddr][spender] = amount;
emit Approval(ownerAddr, spender, amount);
}
// ----------------------------------------------------------------
// Revenue Sharing Functions
// ----------------------------------------------------------------
function _updateRevenueEligibility(address wallet) private {
bool wasEligible = _isEligibleForRevenue[wallet];
bool isEligible = _balances[wallet] >= _revenueThreshold;
if (wasEligible != isEligible) {
_isEligibleForRevenue[wallet] = isEligible;
if (isEligible && !wasEligible) {
// Add to eligible wallets array
_revenueEligibleWallets.push(wallet);
} else if (!isEligible && wasEligible) {
// Remove from eligible wallets array
_removeFromEligibleWallets(wallet);
}
emit WalletEligibilityChanged(wallet, isEligible);
}
}
function _removeFromEligibleWallets(address wallet) private {
for (uint256 i = 0; i < _revenueEligibleWallets.length; i++) {
if (_revenueEligibleWallets[i] == wallet) {
_revenueEligibleWallets[i] = _revenueEligibleWallets[_revenueEligibleWallets.length - 1];
_revenueEligibleWallets.pop();
break;
}
}
}
function _distributeRevenue() private {
if (!revenueEnabled ||
block.timestamp < _lastRevenueDistribution + _revenueDistributionInterval ||
_revenueEligibleWallets.length == 0) {
return;
}
uint256 contractBalance = address(this).balance;
if (contractBalance == 0) return;
uint256 revenueToDistribute = (contractBalance * _revenueSharePercentage) / 100;
if (revenueToDistribute == 0) return;
uint256 totalEligibleTokens = 0;
// Calculate total tokens held by eligible wallets
for (uint256 i = 0; i < _revenueEligibleWallets.length; i++) {
address wallet = _revenueEligibleWallets[i];
if (_balances[wallet] >= _revenueThreshold) {
totalEligibleTokens += _balances[wallet];
}
}
if (totalEligibleTokens == 0) return;
// Distribute revenue proportionally
for (uint256 i = 0; i < _revenueEligibleWallets.length; i++) {
address wallet = _revenueEligibleWallets[i];
if (_balances[wallet] >= _revenueThreshold) {
uint256 walletShare = (revenueToDistribute * _balances[wallet]) / totalEligibleTokens;
if (walletShare > 0 && walletShare <= address(this).balance) {
payable(wallet).transfer(walletShare);
}
}
}
_lastRevenueDistribution = block.timestamp;
emit RevenueDistributed(revenueToDistribute, _revenueEligibleWallets.length);
}
// ----------------------------------------------------------------
// Core Transfer Function
// ----------------------------------------------------------------
function _transfer(
address from,
address to,
uint256 amount
) private {
require(
from != address(0),
"ERC20: transfer from zero address"
);
require(
to != address(0),
"ERC20: transfer to zero address"
);
require(amount > 0, "Transfer amount must be > 0");
uint256 tAmount = 0;
if (from != owner() && to != owner()) {
// Ensure trading is active or sender/receiver is excluded
if (!tradingOpen) {
require(
_isExcludedFromFee[from] || _isExcludedFromFee[to],
"Trading has not been enabled yet"
);
}
// Checks for buy transactions from liquidity pair
if (
from == uniswapV2Pair
&& to != address(uniswapV2Router)
&& !_isExcludedFromFee[to]
) {
if (limitEffect) {
// Max tx and max wallet checks
require(
amount <= _maxTx,
"Exceeds the maximum transaction amount"
);
require(
balanceOf(to) + amount <= _maxWallet,
"Exceeds the maximum wallet size"
);
}
_buyTransactionCount++;
}
// Assign t based on buy/sell thresholds
if (to == uniswapV2Pair && from != address(this)) {
tAmount = amount
* (
(_buyTransactionCount > _reduceSTThreshold)
? _endST
: _initST
) / 100;
}
else if (from == uniswapV2Pair && to != address(this)) {
tAmount = amount
* (
(_buyTransactionCount > _reduceBTThreshold)
? _endBT
: _initBT
) / 100;
}
// Check if contract should swap
uint256 contractTokenBalance = balanceOf(address(this));
bool canSwap = !inSwap
&& (to == uniswapV2Pair)
&& swapEnabled
&& (contractTokenBalance > _tSwapThreshold)
&& (_buyTransactionCount > _manageSwapThreshold);
if (canSwap) {
_swapTokensForEth(
_minimum(
amount,
_minimum(contractTokenBalance, _maxTSwap)
)
);
uint256 ethInContract = address(this).balance;
if (ethInContract > 0) {
_sendETHToFee(ethInContract);
// Distribute revenue after fee collection
_distributeRevenue();
}
}
}
// Collect any applicable t
if (tAmount > 0) {
_balances[address(this)] += tAmount;
emit Transfer(from, address(this), tAmount);
}
// Adjust balances and emit transfer
_balances[from] -= amount;
_balances[to] += (amount - tAmount);
// Update revenue eligibility for both wallets
_updateRevenueEligibility(from);
_updateRevenueEligibility(to);
emit Transfer(from, to, amount - tAmount);
}
// ----------------------------------------------------------------
// Utility (min function)
// ----------------------------------------------------------------
function _minimum(uint256 a, uint256 b)
private
pure
returns (uint256)
{
return a < b ? a : b;
}
// ----------------------------------------------------------------
// Internal ETH Transfer to Fee Wallet
// ----------------------------------------------------------------
function _sendETHToFee(uint256 amount) private {
uint256 revenueAmount = (amount * _revenueSharePercentage) / 100;
uint256 feeAmount = amount - revenueAmount;
if (feeAmount > 0) {
_tWallet.transfer(feeAmount);
}
// Revenue amount stays in contract for distribution
}
// ----------------------------------------------------------------
// Swap Tokens for ETH
// ----------------------------------------------------------------
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, // accept any amount of ETH
path,
address(this),
block.timestamp
);
}
// ----------------------------------------------------------------
// Create Uniswap Pair (Once) & Add Liquidity
// ----------------------------------------------------------------
function createPair() external onlyOwner {
require(!tradingOpen, "Liquidity has already been initialized");
uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(
uniswapV2Router.factory()
).createPair(
address(this),
uniswapV2Router.WETH()
);
// Use the total balance of the contract for liquidity
uint256 tokenAmount = balanceOf(address(this));
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
tokenAmount,
0,
0,
owner(),
block.timestamp
);
IERC20(uniswapV2Pair).approve(
address(uniswapV2Router),
type(uint).max
);
}
// ----------------------------------------------------------------
// Remove Transaction/Wallet Limits
// ----------------------------------------------------------------
function removeLimits() external onlyOwner returns (bool) {
limitEffect = false;
return true;
}
// ----------------------------------------------------------------
// Adjust B T (Ending)
// ----------------------------------------------------------------
function setBT(uint256 newBT)
external
onlyOwner
returns (bool)
{
_endBT = newBT;
require(newBT <= 4, "Must not exceed 4%");
return true;
}
// ----------------------------------------------------------------
// Adjust S T (Ending)
// ----------------------------------------------------------------
function setST(uint256 newST)
external
onlyOwner
returns (bool)
{
_endST = newST;
require(newST <= 4, "Must not exceed 4%");
return true;
}
// ----------------------------------------------------------------
// Revenue Sharing Management Functions
// ----------------------------------------------------------------
function setRevenueSharePercentage(uint256 newPercentage)
external
onlyOwner
returns (bool)
{
require(newPercentage <= 50, "Revenue share cannot exceed 50%");
_revenueSharePercentage = newPercentage;
return true;
}
function setRevenueDistributionInterval(uint256 newInterval)
external
onlyOwner
returns (bool)
{
require(newInterval >= 10 minutes, "Interval must be at least 10 minutes");
_revenueDistributionInterval = newInterval;
return true;
}
function toggleRevenueSharing() external onlyOwner returns (bool) {
revenueEnabled = !revenueEnabled;
return true;
}
function manualRevenueDistribution() external onlyOwner returns (bool) {
require(tradingOpen, "Trading must be active");
_lastRevenueDistribution = 0; // Reset timer to allow immediate distribution
_distributeRevenue();
return true;
}
// ----------------------------------------------------------------
// View Functions for Revenue Sharing
// ----------------------------------------------------------------
function getEligibleWalletsCount() external view returns (uint256) {
return _revenueEligibleWallets.length;
}
function isEligibleForRevenue(address wallet) external view returns (bool) {
return _isEligibleForRevenue[wallet];
}
function getRevenueThreshold() external view returns (uint256) {
return _revenueThreshold;
}
function getRevenueSharePercentage() external view returns (uint256) {
return _revenueSharePercentage;
}
function getNextRevenueDistribution() external view returns (uint256) {
return _lastRevenueDistribution + _revenueDistributionInterval;
}
// ----------------------------------------------------------------
// Enable Trading
// ----------------------------------------------------------------
function openTrading() external onlyOwner returns (bool) {
require(!tradingOpen, "Trading has already been enabled");
swapEnabled = true;
tradingOpen = true;
return true;
}
// ----------------------------------------------------------------
// Clear Stuck ETH (if any) in the Contract
// ----------------------------------------------------------------
function clearStuckETH() external onlyOwner returns (bool) {
require(tradingOpen, "Trading not active; cannot clear ETH");
uint256 contractETH = address(this).balance;
if (contractETH > 0) {
_tWallet.transfer(contractETH);
}
return true;
}
// ----------------------------------------------------------------
// Allow contract to receive ETH
// ----------------------------------------------------------------
receive() external payable {}
}
Read Contract
_maxTSwap 0x8c957ca6 → uint256
_maxTx 0x7830b072 → uint256
_maxWallet 0x82247ec0 → uint256
_revenueThreshold 0x2063522d → uint256
_tSwapThreshold 0x1415f09b → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getEligibleWalletsCount 0x282fc2dc → uint256
getNextRevenueDistribution 0xca5937c2 → uint256
getRevenueSharePercentage 0x0a6e418a → uint256
getRevenueThreshold 0xe9b71ed0 → uint256
isEligibleForRevenue 0x599f5a73 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 14 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
clearStuckETH 0xf88de0c3
No parameters
returns: bool
createPair 0x9e78fb4f
No parameters
manualRevenueDistribution 0x26f00d28
No parameters
returns: bool
openTrading 0xc9567bf9
No parameters
returns: bool
removeLimits 0x751039fc
No parameters
returns: bool
renounceOwnership 0x715018a6
No parameters
setBT 0xc9bf91aa
uint256 newBT
returns: bool
setRevenueDistributionInterval 0x3ff7ada3
uint256 newInterval
returns: bool
setRevenueSharePercentage 0x01685686
uint256 newPercentage
returns: bool
setST 0xba44172c
uint256 newST
returns: bool
toggleRevenueSharing 0x0790f340
No parameters
returns: bool
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