Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x49Dd1f5b37AF4C2e8BCA50dF4B92e6B5b43d1607
Balance 0 ETH
Nonce 1
Code Size 18401 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

18401 bytes
0x608060405234801561000f575f80fd5b5060043610610251575f3560e01c80638456cb5911610144578063b7793962116100c1578063d40527e511610085578063d40527e5146106b9578063d4698016146106d5578063dd62ed3e146106f3578063f242ab4114610723578063f2fde38b14610741578063f72f863b1461075d57610251565b8063b779396214610601578063ba136fef14610631578063c6a3064714610651578063c6d69a301461066d578063cb4ca6311461068957610251565b8063a9059cbb11610108578063a9059cbb1461054d578063ae36f5c81461057d578063b29a814014610599578063b35dcee0146105b5578063b70baeb6146105d157610251565b80638456cb59146104cb5780638da5cb5b146104d55780638fa81732146104f35780639004a8bb1461051157806395d89b411461052f57610251565b80633f7fc93b116101d2578063715018a611610196578063715018a61461043357806375f0a8741461043d578063771a3a1d1461045b5780637cc1f8671461047957806382c4fc2e1461049b57610251565b80633f7fc93b1461039157806342966c68146103ad5780635c975abb146103c95780635d098b38146103e757806370a082311461040357610251565b806323b872dd1161021957806323b872dd146102ff578063296f0a0c1461032f578063313ce5671461034b57806332cb6b0c146103695780633f4ba83a1461038757610251565b806306fdde03146102555780630758d92414610273578063095ea7b31461029157806318160ddd146102c15780631983f599146102df575b5f80fd5b61025d610779565b60405161026a919061338f565b60405180910390f35b61027b6107b2565b60405161028891906133ee565b60405180910390f35b6102ab60048036038101906102a69190613468565b6107d7565b6040516102b891906134c0565b60405180910390f35b6102c96108ab565b6040516102d691906134e8565b60405180910390f35b6102e76108b3565b6040516102f693929190613501565b60405180910390f35b61031960048036038101906103149190613536565b6108ca565b60405161032691906134c0565b60405180910390f35b61034960048036038101906103449190613586565b610ae3565b005b610353610d06565b60405161036091906135cc565b60405180910390f35b610371610d0b565b60405161037e91906134e8565b60405180910390f35b61038f610d2b565b005b6103ab60048036038101906103a691906135e5565b610e81565b005b6103c760048036038101906103c29190613635565b610fff565b005b6103d16111a1565b6040516103de91906134c0565b60405180910390f35b61040160048036038101906103fc9190613586565b6111b4565b005b61041d60048036038101906104189190613586565b6113d7565b60405161042a91906134e8565b60405180910390f35b61043b61141d565b005b6104456115d6565b60405161045291906133ee565b60405180910390f35b6104636115fb565b60405161047091906134e8565b60405180910390f35b610481611601565b604051610492959493929190613660565b60405180910390f35b6104b560048036038101906104b09190613586565b611659565b6040516104c291906134c0565b60405180910390f35b6104d36116ab565b005b6104dd611803565b6040516104ea91906133ee565b60405180910390f35b6104fb611828565b60405161050891906134e8565b60405180910390f35b61051961182d565b60405161052691906134c0565b60405180910390f35b610537611840565b604051610544919061338f565b60405180910390f35b61056760048036038101906105629190613468565b611879565b60405161057491906134c0565b60405180910390f35b61059760048036038101906105929190613586565b61194d565b005b6105b360048036038101906105ae9190613468565b611ae9565b005b6105cf60048036038101906105ca9190613468565b611dca565b005b6105eb60048036038101906105e69190613586565b61210b565b6040516105f891906134c0565b60405180910390f35b61061b60048036038101906106169190613586565b612128565b60405161062891906134c0565b60405180910390f35b61063961217a565b60405161064893929190613501565b60405180910390f35b61066b600480360381019061066691906136db565b612199565b005b61068760048036038101906106829190613635565b612307565b005b6106a3600480360381019061069e9190613586565b61243d565b6040516106b091906134c0565b60405180910390f35b6106d360048036038101906106ce91906136db565b61245a565b005b6106dd6125c8565b6040516106ea91906133ee565b60405180910390f35b61070d60048036038101906107089190613719565b6125ed565b60405161071a91906134e8565b60405180910390f35b61072b61266f565b60405161073891906133ee565b60405180910390f35b61075b60048036038101906107569190613586565b612694565b005b61077760048036038101906107729190613586565b6128b8565b005b6040518060400160405280600a81526020017f4269742d4261727465720000000000000000000000000000000000000000000081525081565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600460149054906101000a900460ff1615610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081f906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d90613809565b60405180910390fd5b6108a1338484612a54565b6001905092915050565b5f8054905090565b600b805f0154908060010154908060020154905083565b5f600460149054906101000a900460ff161561091b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610912906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090613871565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906138d9565b60405180910390fd5b5f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90613967565b60405180910390fd5b610ac1858585612c17565b610ad785338584610ad291906139b2565b612a54565b60019150509392505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610b4c5750600460159054906101000a900460ff16155b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613abd565b60405180910390fd5b5f60075f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b601281565b6012600a610d199190613c0a565b632e501440610d289190613c54565b81565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610d945750600460159054906101000a900460ff16155b610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90613a55565b60405180910390fd5b600460149054906101000a900460ff16610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990613cdf565b60405180910390fd5b5f600460146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa60405160405180910390a2565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610eea5750600460159054906101000a900460ff16155b610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2090613a55565b60405180910390fd5b6103e8818385610f399190613cfd565b610f439190613cfd565b14610f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7a90613d7a565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600b5f820151815f015560208201518160010155604082015181600201559050507f7b2de63457b1fb2068448371f11d6fba8dfd88f89b54ac36aacb234daf544874838383604051610ff293929190613501565b60405180910390a1505050565b600460149054906101000a900460ff161561104f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611046906137a1565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690613e08565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461111b91906139b2565b92505081905550805f8082825461113291906139b2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119691906134e8565b60405180910390a350565b600460149054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561121d5750600460159054906101000a900460ff16155b61125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c190613abd565b60405180910390fd5b5f60075f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156114865750600460159054906101000a900460ff16155b6114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613a55565b60405180910390fd5b600460159054906101000a900460ff1615611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90613e70565b60405180910390fd5b6001600460156101000a81548160ff02191690831515021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a25f60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b5f805f805f80546012600a6116169190613c0a565b632e5014406116259190613c54565b600154600460149054906101000a900460ff16600460159054906101000a900460ff16945094509450945094509091929394565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156117145750600460159054906101000a900460ff16155b611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613a55565b60405180910390fd5b600460149054906101000a900460ff16156117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90613ed8565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25860405160405180910390a2565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606481565b600460159054906101000a900460ff1681565b6040518060400160405280600481526020017f425437370000000000000000000000000000000000000000000000000000000081525081565b5f600460149054906101000a900460ff16156118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c1906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f90613809565b60405180910390fd5b611943338484612c17565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156119b65750600460159054906101000a900460ff16155b6119f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ec90613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a90613f40565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1d288f7aba265e8b154b112bbb631ceca5df5fe93a750b2fe042fd1cc826647f60405160405180910390a250565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015611b525750600460159054906101000a900460ff16155b611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890613a55565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf690613fa8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6490614010565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051602401611cb992919061402e565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d439190614099565b5f604051808303815f865af19150503d805f8114611d7c576040519150601f19603f3d011682016040523d82523d5f602084013e611d81565b606091505b5050905080611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc906140f9565b60405180910390fd5b505050565b600460149054906101000a900460ff1615611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e11906137a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f90613809565b60405180910390fd5b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890614187565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890614215565b60405180910390fd5b5f8111611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca906142a3565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461201f91906139b2565b92505081905550805f8082825461203691906139b2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161209a91906134e8565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f35643b901504fd95478b58083f697aef4fe08d04e2fb229633bd15b5e94f5ae9836040516120ff91906134e8565b60405180910390a35050565b6008602052805f5260405f205f915054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f600b5f0154600b60010154600b60020154925092509250909192565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156122025750600460159054906101000a900460ff16155b612241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223890613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a690613abd565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156123705750600460159054906101000a900460ff16155b6123af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a690613a55565b60405180910390fd5b60648111156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea9061430b565b60405180910390fd5b5f6001549050816001819055507fa8ee157eb2a9aa895d74df4d2d3bc0ad165ff3162f8ec46a4ecf602dd5c48fda8183604051612431929190614329565b60405180910390a15050565b6007602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156124c35750600460159054906101000a900460ff16155b612502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f990613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256790613abd565b60405180910390fd5b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156126fd5750600460159054906101000a900460ff16155b61273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a19061439a565b60405180910390fd5b600460159054906101000a900460ff16156127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f190614402565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156129215750600460159054906101000a900460ff16155b612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295790613a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036129ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c59061446a565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc8060405160405180910390a250565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab9906144f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2790614586565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612c0a91906134e8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7c90614614565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cea906146a2565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614730565b60405180910390fd5b5f8190505f80600154118015612dd0575060075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612e23575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ed25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612ed15750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b5b156131f3576103e860015484612ee89190613c54565b612ef2919061477b565b90505f6103e8600b5f015483612f089190613c54565b612f12919061477b565b90505f6103e8600b6001015484612f299190613c54565b612f33919061477b565b90505f6103e8600b6002015485612f4a9190613c54565b612f54919061477b565b90505f831115613059578260055f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612fcb9190613cfd565b9250508190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161305091906134e8565b60405180910390a35b5f82111561315c578160055f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546130ce9190613cfd565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161315391906134e8565b60405180910390a35b5f8111156131e157805f8082825461317491906139b2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131d891906134e8565b60405180910390a35b83866131ed91906139b2565b94505050505b8260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461323f91906139b2565b925050819055508160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132929190613cfd565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f691906134e8565b60405180910390a35050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561333c578082015181840152602081019050613321565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61336182613305565b61336b818561330f565b935061337b81856020860161331f565b61338481613347565b840191505092915050565b5f6020820190508181035f8301526133a78184613357565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133d8826133af565b9050919050565b6133e8816133ce565b82525050565b5f6020820190506134015f8301846133df565b92915050565b5f80fd5b613414816133ce565b811461341e575f80fd5b50565b5f8135905061342f8161340b565b92915050565b5f819050919050565b61344781613435565b8114613451575f80fd5b50565b5f813590506134628161343e565b92915050565b5f806040838503121561347e5761347d613407565b5b5f61348b85828601613421565b925050602061349c85828601613454565b9150509250929050565b5f8115159050919050565b6134ba816134a6565b82525050565b5f6020820190506134d35f8301846134b1565b92915050565b6134e281613435565b82525050565b5f6020820190506134fb5f8301846134d9565b92915050565b5f6060820190506135145f8301866134d9565b61352160208301856134d9565b61352e60408301846134d9565b949350505050565b5f805f6060848603121561354d5761354c613407565b5b5f61355a86828701613421565b935050602061356b86828701613421565b925050604061357c86828701613454565b9150509250925092565b5f6020828403121561359b5761359a613407565b5b5f6135a884828501613421565b91505092915050565b5f60ff82169050919050565b6135c6816135b1565b82525050565b5f6020820190506135df5f8301846135bd565b92915050565b5f805f606084860312156135fc576135fb613407565b5b5f61360986828701613454565b935050602061361a86828701613454565b925050604061362b86828701613454565b9150509250925092565b5f6020828403121561364a57613649613407565b5b5f61365784828501613454565b91505092915050565b5f60a0820190506136735f8301886134d9565b61368060208301876134d9565b61368d60408301866134d9565b61369a60608301856134b1565b6136a760808301846134b1565b9695505050505050565b6136ba816134a6565b81146136c4575f80fd5b50565b5f813590506136d5816136b1565b92915050565b5f80604083850312156136f1576136f0613407565b5b5f6136fe85828601613421565b925050602061370f858286016136c7565b9150509250929050565b5f806040838503121561372f5761372e613407565b5b5f61373c85828601613421565b925050602061374d85828601613421565b9150509250929050565b7f436f6e74726163742069732070617573656400000000000000000000000000005f82015250565b5f61378b60128361330f565b915061379682613757565b602082019050919050565b5f6020820190508181035f8301526137b88161377f565b9050919050565b7f496e76616c696420616464726573733a207a65726f20616464726573730000005f82015250565b5f6137f3601d8361330f565b91506137fe826137bf565b602082019050919050565b5f6020820190508181035f830152613820816137e7565b9050919050565b7f496e76616c69642073656e6465722061646472657373000000000000000000005f82015250565b5f61385b60168361330f565b915061386682613827565b602082019050919050565b5f6020820190508181035f8301526138888161384f565b9050919050565b7f496e76616c696420726563697069656e742061646472657373000000000000005f82015250565b5f6138c360198361330f565b91506138ce8261388f565b602082019050919050565b5f6020820190508181035f8301526138f0816138b7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61395160288361330f565b915061395c826138f7565b604082019050919050565b5f6020820190508181035f83015261397e81613945565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139bc82613435565b91506139c783613435565b92508282039050818111156139df576139de613985565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e6572206f72206f776e65725f8201527f736869702072656e6f756e636564000000000000000000000000000000000000602082015250565b5f613a3f602e8361330f565b9150613a4a826139e5565b604082019050919050565b5f6020820190508181035f830152613a6c81613a33565b9050919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f613aa7600f8361330f565b9150613ab282613a73565b602082019050919050565b5f6020820190508181035f830152613ad481613a9b565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613b3057808604811115613b0c57613b0b613985565b5b6001851615613b1b5780820291505b8081029050613b2985613adb565b9450613af0565b94509492505050565b5f82613b485760019050613c03565b81613b55575f9050613c03565b8160018114613b6b5760028114613b7557613ba4565b6001915050613c03565b60ff841115613b8757613b86613985565b5b8360020a915084821115613b9e57613b9d613985565b5b50613c03565b5060208310610133831016604e8410600b8410161715613bd95782820a905083811115613bd457613bd3613985565b5b613c03565b613be68484846001613ae7565b92509050818404811115613bfd57613bfc613985565b5b81810290505b9392505050565b5f613c1482613435565b9150613c1f836135b1565b9250613c4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b39565b905092915050565b5f613c5e82613435565b9150613c6983613435565b9250828202613c7781613435565b91508282048414831517613c8e57613c8d613985565b5b5092915050565b7f436f6e7472616374206973206e6f7420706175736564000000000000000000005f82015250565b5f613cc960168361330f565b9150613cd482613c95565b602082019050919050565b5f6020820190508181035f830152613cf681613cbd565b9050919050565b5f613d0782613435565b9150613d1283613435565b9250828201905080821115613d2a57613d29613985565b5b92915050565b7f53706c6974206d7573742073756d20746f2031303030202831303025290000005f82015250565b5f613d64601d8361330f565b9150613d6f82613d30565b602082019050919050565b5f6020820190508181035f830152613d9181613d58565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f613df260228361330f565b9150613dfd82613d98565b604082019050919050565b5f6020820190508181035f830152613e1f81613de6565b9050919050565b7f4f776e65727368697020616c72656164792072656e6f756e63656400000000005f82015250565b5f613e5a601b8361330f565b9150613e6582613e26565b602082019050919050565b5f6020820190508181035f830152613e8781613e4e565b9050919050565b7f436f6e747261637420697320616c7265616479207061757365640000000000005f82015250565b5f613ec2601a8361330f565b9150613ecd82613e8e565b602082019050919050565b5f6020820190508181035f830152613eef81613eb6565b9050919050565b7f496e76616c6964207061697200000000000000000000000000000000000000005f82015250565b5f613f2a600c8361330f565b9150613f3582613ef6565b602082019050919050565b5f6020820190508181035f830152613f5781613f1e565b9050919050565b7f43616e6e6f74207265636f766572206f776e20746f6b656e73000000000000005f82015250565b5f613f9260198361330f565b9150613f9d82613f5e565b602082019050919050565b5f6020820190508181035f830152613fbf81613f86565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f613ffa60158361330f565b915061400582613fc6565b602082019050919050565b5f6020820190508181035f83015261402781613fee565b9050919050565b5f6040820190506140415f8301856133df565b61404e60208301846134d9565b9392505050565b5f81519050919050565b5f81905092915050565b5f61407382614055565b61407d818561405f565b935061408d81856020860161331f565b80840191505092915050565b5f6140a48284614069565b915081905092915050565b7f546f6b656e207265636f76657279206661696c656400000000000000000000005f82015250565b5f6140e360158361330f565b91506140ee826140af565b602082019050919050565b5f6020820190508181035f830152614110816140d7565b9050919050565b7f4e6f742077686974656c697374656420666f7220627269646765207472616e735f8201527f6665727300000000000000000000000000000000000000000000000000000000602082015250565b5f61417160248361330f565b915061417c82614117565b604082019050919050565b5f6020820190508181035f83015261419e81614165565b9050919050565b7f496e73756666696369656e742062616c616e636520666f7220627269646765205f8201527f7472616e73666572000000000000000000000000000000000000000000000000602082015250565b5f6141ff60288361330f565b915061420a826141a5565b604082019050919050565b5f6020820190508181035f83015261422c816141f3565b9050919050565b7f42726964676520616d6f756e74206d75737420626520677265617465722074685f8201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b5f61428d60278361330f565b915061429882614233565b604082019050919050565b5f6020820190508181035f8301526142ba81614281565b9050919050565b7f54617820726174652065786365656473206d6178696d756d00000000000000005f82015250565b5f6142f560188361330f565b9150614300826142c1565b602082019050919050565b5f6020820190508181035f830152614322816142e9565b9050919050565b5f60408201905061433c5f8301856134d9565b61434960208301846134d9565b9392505050565b7f496e76616c6964206e6577206f776e65720000000000000000000000000000005f82015250565b5f61438460118361330f565b915061438f82614350565b602082019050919050565b5f6020820190508181035f8301526143b181614378565b9050919050565b7f4f776e65727368697020686173206265656e2072656e6f756e636564000000005f82015250565b5f6143ec601c8361330f565b91506143f7826143b8565b602082019050919050565b5f6020820190508181035f830152614419816143e0565b9050919050565b7f496e76616c696420726f757465720000000000000000000000000000000000005f82015250565b5f614454600e8361330f565b915061445f82614420565b602082019050919050565b5f6020820190508181035f83015261448181614448565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6144e260248361330f565b91506144ed82614488565b604082019050919050565b5f6020820190508181035f83015261450f816144d6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61457060228361330f565b915061457b82614516565b604082019050919050565b5f6020820190508181035f83015261459d81614564565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6145fe60258361330f565b9150614609826145a4565b604082019050919050565b5f6020820190508181035f83015261462b816145f2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61468c60238361330f565b915061469782614632565b604082019050919050565b5f6020820190508181035f8301526146b981614680565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61471a60268361330f565b9150614725826146c0565b604082019050919050565b5f6020820190508181035f8301526147478161470e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61478582613435565b915061479083613435565b9250826147a05761479f61474e565b5b82820490509291505056fea2646970667358221220238c1e48d6331fbd29261beeecc1624cd0d5a3a2a2ace06d7713ac7e89154bc964736f6c63430008180033

Verified Source Code Partial Match

Compiler: v0.8.24+commit.e11b9ed9 EVM: shanghai Optimization: No
BitBarter.sol 475 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

/**
 * @title BitBarter Token
 * @dev ERC20 token with tax system, bridge functionality, and owner controls
 * @notice This contract includes burn mechanism and configurable tax rates
 */
contract BitBarter {
    // ERC20 Events
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    // Custom Events
    event BridgeTransfer(address indexed from, address indexed to, uint256 amount);
    event RouterUpdated(address indexed router);
    event PairUpdated(address indexed pair);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event OwnershipRenounced(address indexed previousOwner);
    event Paused(address indexed account);
    event Unpaused(address indexed account);
    event TaxRateUpdated(uint256 oldRate, uint256 newRate);
    event TaxSplitUpdated(uint256 marketing, uint256 liquidity, uint256 burn);

    // Token Information
    string public constant name = "Bit-Barter";
    string public constant symbol = "BT77";
    uint8 public constant decimals = 18;
    
    // Supply Management
    uint256 private _totalSupply;
    uint256 public constant MAX_SUPPLY = 777_000_000 * 10**decimals; // 777M max cap
    
    // Tax Configuration
    uint256 public taxRate = 30; // 3.0% (base 1000)
    uint256 public constant MAX_TAX_RATE = 100; // 10% maximum
    
    // Wallets
    address public marketingWallet;
    address public liquidityWallet;
    address public owner;
    
    // Contract State
    bool public paused = false;
    bool public ownershipRenounced = false;

    // Mappings
    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private allowances;
    mapping(address => bool) public isExcludedFromTax;
    mapping(address => bool) public isBridgeWhitelisted;

    // DEX Integration
    address public dexRouter;
    address public dexPair;

    // Tax Distribution Structure
    struct TaxSplit {
        uint256 marketing;
        uint256 liquidity;
        uint256 burnAmount;
    }

    TaxSplit public taxSplit = TaxSplit({
        marketing: 500, // 50%
        liquidity: 300, // 30%
        burnAmount: 200 // 20%
    });

    // Modifiers
    modifier onlyOwner() {
        require(msg.sender == owner && !ownershipRenounced, "Caller is not the owner or ownership renounced");
        _;
    }

    modifier whenNotPaused() {
        require(!paused, "Contract is paused");
        _;
    }

    modifier validAddress(address _addr) {
        require(_addr != address(0), "Invalid address: zero address");
        _;
    }

    /**
     * @dev Constructor that sets up the token with initial parameters
     * @param _marketingWallet Address for marketing tax collection
     * @param _liquidityWallet Address for liquidity tax collection
     */
    constructor(
        address _marketingWallet, 
        address _liquidityWallet
    ) {
        require(_marketingWallet != address(0), "Invalid marketing wallet");
        require(_liquidityWallet != address(0), "Invalid liquidity wallet");
        
        marketingWallet = _marketingWallet;
        liquidityWallet = _liquidityWallet;
        owner = msg.sender;

        // FIXED: Properly initialize total supply
        uint256 cap = 77_000_000 * 10**decimals;
        _totalSupply = cap; // FIXED: Actually assign the value
        balances[msg.sender] = cap;

        // Exclude key addresses from tax
        isExcludedFromTax[msg.sender] = true;
        isExcludedFromTax[_marketingWallet] = true;
        isExcludedFromTax[_liquidityWallet] = true;
        isExcludedFromTax[address(this)] = true;

        emit Transfer(address(0), msg.sender, cap);
    }

    // ===== ERC20 STANDARD FUNCTIONS =====

    /**
     * @dev Returns the total supply of tokens
     */
    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Returns the balance of the specified address
     */
    function balanceOf(address account) public view returns (uint256) {
        return balances[account];
    }

    /**
     * @dev Returns the allowance amount
     */
    function allowance(address owner_, address spender) public view returns (uint256) {
        return allowances[owner_][spender];
    }

    /**
     * @dev Transfer tokens to specified address
     */
    function transfer(address recipient, uint256 amount) 
        external 
        whenNotPaused 
        returns (bool) 
    {
        require(recipient != address(0), "Invalid address: zero address");
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev Approve spender to spend tokens
     */
    function approve(address spender, uint256 amount) 
        external 
        whenNotPaused 
        returns (bool) 
    {
        require(spender != address(0), "Invalid address: zero address");
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another using allowance
     */
    function transferFrom(address sender, address recipient, uint256 amount) 
        external 
        whenNotPaused 
        returns (bool) 
    {
        require(sender != address(0), "Invalid sender address");
        require(recipient != address(0), "Invalid recipient address");
        
        uint256 currentAllowance = allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, currentAllowance - amount);
        
        return true;
    }

    // ===== INTERNAL FUNCTIONS =====

    /**
     * @dev Internal transfer function with tax logic
     * FIXED: Corrected tax deduction logic
     */
    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(balances[from] >= amount, "ERC20: transfer amount exceeds balance");

        uint256 transferAmount = amount;
        uint256 totalFee = 0;

        // Apply tax if conditions are met
        if (
            taxRate > 0 &&
            !isExcludedFromTax[from] &&
            !isExcludedFromTax[to] &&
            (from == dexPair || to == dexPair) // Only tax DEX transactions
        ) {
            totalFee = (amount * taxRate) / 1000;
            
            uint256 marketingShare = (totalFee * taxSplit.marketing) / 1000;
            uint256 liquidityShare = (totalFee * taxSplit.liquidity) / 1000;
            uint256 burnShare = (totalFee * taxSplit.burnAmount) / 1000;

            // Distribute tax portions
            if (marketingShare > 0) {
                balances[marketingWallet] += marketingShare;
                emit Transfer(from, marketingWallet, marketingShare);
            }
            
            if (liquidityShare > 0) {
                balances[liquidityWallet] += liquidityShare;
                emit Transfer(from, liquidityWallet, liquidityShare);
            }
            
            if (burnShare > 0) {
                _totalSupply -= burnShare; // Burn tokens by reducing supply
                emit Transfer(from, address(0), burnShare);
            }

            transferAmount = amount - totalFee; // FIXED: Correct calculation
        }

        // Execute the transfer
        balances[from] -= amount; // FIXED: Deduct full amount from sender
        balances[to] += transferAmount; // Credit net amount to recipient
        
        emit Transfer(from, to, transferAmount);
    }

    /**
     * @dev Internal approve function
     */
    function _approve(address owner_, address spender, uint256 amount) internal {
        require(owner_ != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        allowances[owner_][spender] = amount;
        emit Approval(owner_, spender, amount);
    }

    // ===== PUBLIC FUNCTIONS =====

    /**
     * @dev Burn tokens from caller's balance
     */
    function burn(uint256 amount) external whenNotPaused {
        require(balances[msg.sender] >= amount, "ERC20: burn amount exceeds balance");
        
        balances[msg.sender] -= amount;
        _totalSupply -= amount;
        
        emit Transfer(msg.sender, address(0), amount);
    }

    /**
     * @dev Bridge transfer function with proper validation
     * FIXED: Added address validation and better error handling
     */
    function bridgeTransfer(address to, uint256 amount) 
        external 
        whenNotPaused 
    {
        require(to != address(0), "Invalid address: zero address");
        require(isBridgeWhitelisted[msg.sender], "Not whitelisted for bridge transfers");
        require(balances[msg.sender] >= amount, "Insufficient balance for bridge transfer");
        require(amount > 0, "Bridge amount must be greater than zero");
        
        balances[msg.sender] -= amount;
        _totalSupply -= amount; // Burn tokens for bridge
        
        emit Transfer(msg.sender, address(0), amount);
        emit BridgeTransfer(msg.sender, to, amount);
    }

    // ===== OWNER FUNCTIONS =====

    /**
     * @dev Set tax rate with proper validation
     */
    function setTaxRate(uint256 _rate) external onlyOwner {
        require(_rate <= MAX_TAX_RATE, "Tax rate exceeds maximum");
        
        uint256 oldRate = taxRate;
        taxRate = _rate;
        
        emit TaxRateUpdated(oldRate, _rate);
    }

    /**
     * @dev Set tax distribution split
     */
    function setTaxSplit(uint256 marketingPercent, uint256 liquidityPercent, uint256 burnPercent) external onlyOwner {
        require(marketingPercent + liquidityPercent + burnPercent == 1000, "Split must sum to 1000 (100%)");
        
        taxSplit = TaxSplit(marketingPercent, liquidityPercent, burnPercent);
        emit TaxSplitUpdated(marketingPercent, liquidityPercent, burnPercent);
    }

    /**
     * @dev Update marketing wallet
     */
    function setMarketingWallet(address _wallet) external onlyOwner {
        require(_wallet != address(0), "Invalid address");
        
        // Remove tax exclusion from old wallet
        isExcludedFromTax[marketingWallet] = false;
        
        marketingWallet = _wallet;
        
        // Add tax exclusion to new wallet
        isExcludedFromTax[_wallet] = true;
    }

    /**
     * @dev Update liquidity wallet
     */
    function setLiquidityWallet(address _wallet) external onlyOwner {
        require(_wallet != address(0), "Invalid address");
        
        // Remove tax exclusion from old wallet
        isExcludedFromTax[liquidityWallet] = false;
        
        liquidityWallet = _wallet;
        
        // Add tax exclusion to new wallet
        isExcludedFromTax[_wallet] = true;
    }

    /**
     * @dev Exclude or include address from tax
     */
    function excludeFromTax(address account, bool excluded) external onlyOwner {
        require(account != address(0), "Invalid address");
        isExcludedFromTax[account] = excluded;
    }

    /**
     * @dev Set bridge whitelist status
     */
    function setBridgeWhitelist(address account, bool whitelisted) external onlyOwner {
        require(account != address(0), "Invalid address");
        isBridgeWhitelisted[account] = whitelisted;
    }

    /**
     * @dev Set DEX router address
     */
    function setDexRouter(address _router) external onlyOwner {
        require(_router != address(0), "Invalid router");
        dexRouter = _router;
        emit RouterUpdated(_router);
    }

    /**
     * @dev Set DEX pair address
     */
    function setDexPair(address _pair) external onlyOwner {
        require(_pair != address(0), "Invalid pair");
        dexPair = _pair;
        emit PairUpdated(_pair);
    }

    /**
     * @dev Transfer ownership to new owner
     */
    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Invalid new owner");
        require(!ownershipRenounced, "Ownership has been renounced");
        
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Renounce ownership permanently
     * ADDED: Ability to make contract fully decentralized
     */
    function renounceOwnership() external onlyOwner {
        require(!ownershipRenounced, "Ownership already renounced");
        
        ownershipRenounced = true;
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    /**
     * @dev Pause contract in emergency
     * ADDED: Emergency pause functionality
     */
    function pause() external onlyOwner {
        require(!paused, "Contract is already paused");
        paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev Unpause contract
     */
    function unpause() external onlyOwner {
        require(paused, "Contract is not paused");
        paused = false;
        emit Unpaused(msg.sender);
    }

    /**
     * @dev Emergency function to recover accidentally sent ERC20 tokens
     * ADDED: Token recovery for emergency situations
     */
    function recoverToken(address tokenAddress, uint256 amount) external onlyOwner {
        require(tokenAddress != address(this), "Cannot recover own tokens");
        require(tokenAddress != address(0), "Invalid token address");
        
        // Simple transfer call - compatible with most ERC20 tokens
        (bool success, ) = tokenAddress.call(
            abi.encodeWithSignature("transfer(address,uint256)", owner, amount)
        );
        require(success, "Token recovery failed");
    }

    /**
     * @dev Get contract information
     */
    function getContractInfo() external view returns (
        uint256 currentSupply,
        uint256 maxSupply,
        uint256 currentTaxRate,
        bool isPaused,
        bool isOwnershipRenounced
    ) {
        return (
            _totalSupply,
            MAX_SUPPLY,
            taxRate,
            paused,
            ownershipRenounced
        );
    }

    /**
     * @dev Get tax split information
     */
    function getTaxSplit() external view returns (
        uint256 marketingPercent,
        uint256 liquidityPercent,
        uint256 burnPercent
    ) {
        return (
            taxSplit.marketing,
            taxSplit.liquidity,
            taxSplit.burnAmount
        );
    }

    /**
     * @dev Check if address is excluded from tax
     */
    function isAddressExcludedFromTax(address account) external view returns (bool) {
        return isExcludedFromTax[account];
    }

    /**
     * @dev Check if address is whitelisted for bridge
     */
    function isAddressBridgeWhitelisted(address account) external view returns (bool) {
        return isBridgeWhitelisted[account];
    }
}

Read Contract

MAX_SUPPLY 0x32cb6b0c → uint256
MAX_TAX_RATE 0x8fa81732 → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
dexPair 0xf242ab41 → address
dexRouter 0x0758d924 → address
getContractInfo 0x7cc1f867 → uint256, uint256, uint256, bool, bool
getTaxSplit 0xba136fef → uint256, uint256, uint256
isAddressBridgeWhitelisted 0xb7793962 → bool
isAddressExcludedFromTax 0x82c4fc2e → bool
isBridgeWhitelisted 0xb70baeb6 → bool
isExcludedFromTax 0xcb4ca631 → bool
liquidityWallet 0xd4698016 → address
marketingWallet 0x75f0a874 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
ownershipRenounced 0x9004a8bb → bool
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
taxRate 0x771a3a1d → uint256
taxSplit 0x1983f599 → uint256, uint256, uint256
totalSupply 0x18160ddd → uint256

Write Contract 18 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
bridgeTransfer 0xb35dcee0
address to
uint256 amount
burn 0x42966c68
uint256 amount
excludeFromTax 0xc6a30647
address account
bool excluded
pause 0x8456cb59
No parameters
recoverToken 0xb29a8140
address tokenAddress
uint256 amount
renounceOwnership 0x715018a6
No parameters
setBridgeWhitelist 0xd40527e5
address account
bool whitelisted
setDexPair 0xae36f5c8
address _pair
setDexRouter 0xf72f863b
address _router
setLiquidityWallet 0x296f0a0c
address _wallet
setMarketingWallet 0x5d098b38
address _wallet
setTaxRate 0xc6d69a30
uint256 _rate
setTaxSplit 0x3f7fc93b
uint256 marketingPercent
uint256 liquidityPercent
uint256 burnPercent
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
unpause 0x3f4ba83a
No parameters

Recent Transactions

No transactions found for this address