Address Contract Verified
Address
0x94d468Ea6da102c90Eb6472E51959ce28eF8969E
Balance
0 ETH
Nonce
1
Code Size
12826 bytes
Creator
0x11b673ff...08AF at tx 0x79cc3fd0...36a8aa
Indexed Transactions
0
Contract Bytecode
12826 bytes
0x608060405260043610610117575f3560e01c80638c0b5e221161009f578063a9059cbb11610063578063a9059cbb14610366578063aa4bde28146103a2578063c4918b4e146103cc578063c9567bf9146103f6578063dd62ed3e1461040c5761011e565b80638c0b5e22146102aa5780638da5cb5b146102d457806395d89b41146102fe5780639e252f0014610328578063a2b17412146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b80630445b6671461012257806306fdde031461014c578063095ea7b31461017657806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610448565b60405161014391906121db565b60405180910390f35b348015610157575f80fd5b5061016061044e565b60405161016d919061227e565b60405180910390f35b348015610181575f80fd5b5061019c60048036038101906101979190612326565b61048b565b6040516101a9919061237e565b60405180910390f35b3480156101bd575f80fd5b506101c66104a8565b6040516101d391906121db565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd9190612397565b6104cc565b60405161020f919061237e565b60405180910390f35b348015610223575f80fd5b5061022c6105a0565b6040516102399190612402565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061241b565b6105a8565b60405161027591906121db565b60405180910390f35b348015610289575f80fd5b506102926105ee565b005b34801561029f575f80fd5b506102a861073c565b005b3480156102b5575f80fd5b506102be61086e565b6040516102cb91906121db565b60405180910390f35b3480156102df575f80fd5b506102e8610874565b6040516102f59190612455565b60405180910390f35b348015610309575f80fd5b5061031261089b565b60405161031f919061227e565b60405180910390f35b348015610333575f80fd5b5061034e6004803603810190610349919061246e565b6108d8565b005b34801561035b575f80fd5b50610364610a1f565b005b348015610371575f80fd5b5061038c60048036038101906103879190612326565b610aed565b604051610399919061237e565b60405180910390f35b3480156103ad575f80fd5b506103b6610b0a565b6040516103c391906121db565b60405180910390f35b3480156103d7575f80fd5b506103e0610b10565b6040516103ed91906121db565b60405180910390f35b348015610401575f80fd5b5061040a610b16565b005b348015610417575f80fd5b50610432600480360381019061042d9190612499565b6110a5565b60405161043f91906121db565b60405180910390f35b600d5481565b60606040518060400160405280600681526020017f447269786f6e0000000000000000000000000000000000000000000000000000815250905090565b5f61049e610497611127565b848461112e565b6001905092915050565b5f6012600a6104b79190612633565b6404a817c8006104c7919061267d565b905090565b5f6104d88484846112f1565b610595846104e4611127565b610590856040518060600160405280602981526020016131956029913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610547611127565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c849092919063ffffffff16565b61112e565b600190509392505050565b5f6012905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105f6611127565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106799061272e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610744611127565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c79061272e565b60405180910390fd5b6012600a6107de9190612633565b6404a817c8006107ee919061267d565b600b819055506012600a6108029190612633565b6404a817c800610812919061267d565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a6108479190612633565b6404a817c800610857919061267d565b60405161086491906121db565b60405180910390a1565b600b5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4452580000000000000000000000000000000000000000000000000000000000815250905090565b6108e0611127565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639061272e565b60405180910390fd5b5f610975610874565b73ffffffffffffffffffffffffffffffffffffffff168260405161099890612779565b5f6040518083038185875af1925050503d805f81146109d2576040519150601f19603f3d011682016040523d82523d5f602084013e6109d7565b606091505b5050905080610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a12906127d7565b60405180910390fd5b5050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5f611127565b73ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac9061283f565b60405180910390fd5b5f610abf306105a8565b90505f811115610ad357610ad281611ce6565b5b5f4790505f811115610ae957610ae881611f51565b5b5050565b5f610b00610af9611127565b84846112f1565b6001905092915050565b600c5481565b600e5481565b610b1e611127565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba19061272e565b60405180910390fd5b601160169054906101000a900460ff1615610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf1906128a7565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cdd91906128d9565b90505f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6e91906128d9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530846040518363ffffffff1660e01b8152600401610da8929190612904565b602060405180830381865afa158015610dc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de791906128d9565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e225780610f2b565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb091906128d9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630846040518363ffffffff1660e01b8152600401610eea929190612904565b6020604051808303815f875af1158015610f06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2a91906128d9565b5b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fb33060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610f9e9190612633565b6404a817c800610fae919061267d565b61112e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ffb306105a8565b5f80611005610874565b426040518863ffffffff1660e01b81526004016110279695949392919061296d565b60606040518083038185885af1158015611043573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061106891906129e0565b5050506001601160156101000a81548160ff0219169083151502179055506001601160166101000a81548160ff0219169083151502179055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612aa0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612b08565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112e491906121db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135690612b96565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612bfe565b60405180910390fd5b5f811161140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612c8c565b60405180910390fd5b601160169054906101000a900460ff166114fe5760015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806114be575060015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612cf4565b60405180910390fd5b5b5f611507610874565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115755750611545610874565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119d45760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611621575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156119cf5760115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116cf575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611722575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561181a57600b5482111561176c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176390612d5c565b60405180910390fd5b600c5482611779856105a8565b6117839190612d7a565b11156117c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bb90612df7565b60405180910390fd5b61180060646117f2600854600a54116117df576004546117e3565b6006545b8561201e90919063ffffffff16565b61209590919063ffffffff16565b9050600a5f81548092919061181490612e15565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118a257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118e6576118e360646118d5600854600a54116118c2576005546118c6565b6007545b8561201e90919063ffffffff16565b61209590919063ffffffff16565b90505b5f6118f0306105a8565b9050601160149054906101000a900460ff1615801561195b575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119735750601160159054906101000a900460ff165b80156119805750600d5481115b801561198f5750600954600a54115b156119c9576119b16119ac846119a784600e546120c1565b6120c1565b611ce6565b5f4790505f8111156119c7576119c647611f51565b5b505b506119d3565b5f90505b5b611a248260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ac7611a7b82846120d990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210590919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f811115611c0757611b608160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461210590919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bfe91906121db565b60405180910390a35b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c6984866120d990919063ffffffff16565b604051611c7691906121db565b60405180910390a350505050565b5f838311158290611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc2919061227e565b60405180910390fd5b505f8385611cd99190612e5c565b9050809150509392505050565b6001601160146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d1d57611d1c612e8f565b5b604051908082528060200260200182016040528015611d4b5781602001602082028036833780820191505090505b50905030815f81518110611d6257611d61612ebc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e2a91906128d9565b81600181518110611e3e57611e3d612ebc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ea43060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461112e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f06959493929190612fa0565b5f604051808303815f87803b158015611f1d575f80fd5b505af1158015611f2f573d5f803e3d5ffd5b50505050505f601160146101000a81548160ff02191690831515021790555050565b5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f9790612779565b5f6040518083038185875af1925050503d805f8114611fd1576040519150601f19603f3d011682016040523d82523d5f602084013e611fd6565b606091505b505090508061201a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612011906127d7565b60405180910390fd5b5050565b5f80830361202e575f905061208f565b5f828461203b919061267d565b905082848261204a9190613025565b1461208a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612081906130c5565b60405180910390fd5b809150505b92915050565b5f6120b9838360405180606001604052806023815260200161317260239139612162565b905092915050565b5f8183116120cf57826120d1565b815b905092915050565b5f6120fd83836040518060600160405280602781526020016131be60279139611c84565b905092915050565b5f8082846121139190612d7a565b905083811015612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613153565b60405180910390fd5b8091505092915050565b5f80831182906121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f919061227e565b60405180910390fd5b505f83856121b69190613025565b9050809150509392505050565b5f819050919050565b6121d5816121c3565b82525050565b5f6020820190506121ee5f8301846121cc565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561222b578082015181840152602081019050612210565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612250826121f4565b61225a81856121fe565b935061226a81856020860161220e565b61227381612236565b840191505092915050565b5f6020820190508181035f8301526122968184612246565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122cb826122a2565b9050919050565b6122db816122c1565b81146122e5575f80fd5b50565b5f813590506122f6816122d2565b92915050565b612305816121c3565b811461230f575f80fd5b50565b5f81359050612320816122fc565b92915050565b5f806040838503121561233c5761233b61229e565b5b5f612349858286016122e8565b925050602061235a85828601612312565b9150509250929050565b5f8115159050919050565b61237881612364565b82525050565b5f6020820190506123915f83018461236f565b92915050565b5f805f606084860312156123ae576123ad61229e565b5b5f6123bb868287016122e8565b93505060206123cc868287016122e8565b92505060406123dd86828701612312565b9150509250925092565b5f60ff82169050919050565b6123fc816123e7565b82525050565b5f6020820190506124155f8301846123f3565b92915050565b5f602082840312156124305761242f61229e565b5b5f61243d848285016122e8565b91505092915050565b61244f816122c1565b82525050565b5f6020820190506124685f830184612446565b92915050565b5f602082840312156124835761248261229e565b5b5f61249084828501612312565b91505092915050565b5f80604083850312156124af576124ae61229e565b5b5f6124bc858286016122e8565b92505060206124cd858286016122e8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561255957808604811115612535576125346124d7565b5b60018516156125445780820291505b808102905061255285612504565b9450612519565b94509492505050565b5f82612571576001905061262c565b8161257e575f905061262c565b8160018114612594576002811461259e576125cd565b600191505061262c565b60ff8411156125b0576125af6124d7565b5b8360020a9150848211156125c7576125c66124d7565b5b5061262c565b5060208310610133831016604e8410600b84101617156126025782820a9050838111156125fd576125fc6124d7565b5b61262c565b61260f8484846001612510565b92509050818404811115612626576126256124d7565b5b81810290505b9392505050565b5f61263d826121c3565b9150612648836123e7565b92506126757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612562565b905092915050565b5f612687826121c3565b9150612692836121c3565b92508282026126a0816121c3565b915082820484148315176126b7576126b66124d7565b5b5092915050565b7f4f776e6572736869703a2063616c6c6572206973206e6f7420746865206f776e5f8201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b5f6127186022836121fe565b9150612723826126be565b604082019050919050565b5f6020820190508181035f8301526127458161270c565b9050919050565b5f81905092915050565b50565b5f6127645f8361274c565b915061276f82612756565b5f82019050919050565b5f61278382612759565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f6127c16013836121fe565b91506127cc8261278d565b602082019050919050565b5f6020820190508181035f8301526127ee816127b5565b9050919050565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f6128296018836121fe565b9150612834826127f5565b602082019050919050565b5f6020820190508181035f8301526128568161281d565b9050919050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f6128916017836121fe565b915061289c8261285d565b602082019050919050565b5f6020820190508181035f8301526128be81612885565b9050919050565b5f815190506128d3816122d2565b92915050565b5f602082840312156128ee576128ed61229e565b5b5f6128fb848285016128c5565b91505092915050565b5f6040820190506129175f830185612446565b6129246020830184612446565b9392505050565b5f819050919050565b5f819050919050565b5f61295761295261294d8461292b565b612934565b6121c3565b9050919050565b6129678161293d565b82525050565b5f60c0820190506129805f830189612446565b61298d60208301886121cc565b61299a604083018761295e565b6129a7606083018661295e565b6129b46080830185612446565b6129c160a08301846121cc565b979650505050505050565b5f815190506129da816122fc565b92915050565b5f805f606084860312156129f7576129f661229e565b5b5f612a04868287016129cc565b9350506020612a15868287016129cc565b9250506040612a26868287016129cc565b9150509250925092565b7f4945524332303a20617070726f76652066726f6d207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a8a6021836121fe565b9150612a9582612a30565b604082019050919050565b5f6020820190508181035f830152612ab781612a7e565b9050919050565b7f4945524332303a20617070726f766520746f207a65726f2061646472657373005f82015250565b5f612af2601f836121fe565b9150612afd82612abe565b602082019050919050565b5f6020820190508181035f830152612b1f81612ae6565b9050919050565b7f4945524332303a207472616e736665722066726f6d207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b806022836121fe565b9150612b8b82612b26565b604082019050919050565b5f6020820190508181035f830152612bad81612b74565b9050919050565b7f4945524332303a207472616e7366657220746f207a65726f20616464726573735f82015250565b5f612be86020836121fe565b9150612bf382612bb4565b602082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c766029836121fe565b9150612c8182612c1c565b604082019050919050565b5f6020820190508181035f830152612ca381612c6a565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65640000000000000000005f82015250565b5f612cde6017836121fe565b9150612ce982612caa565b602082019050919050565b5f6020820190508181035f830152612d0b81612cd2565b9050919050565b7f45786365656473206d6178207472616e73616374696f6e206c696d69742e00005f82015250565b5f612d46601e836121fe565b9150612d5182612d12565b602082019050919050565b5f6020820190508181035f830152612d7381612d3a565b9050919050565b5f612d84826121c3565b9150612d8f836121c3565b9250828201905080821115612da757612da66124d7565b5b92915050565b7f45786365656473206d61782077616c6c65742073697a652e00000000000000005f82015250565b5f612de16018836121fe565b9150612dec82612dad565b602082019050919050565b5f6020820190508181035f830152612e0e81612dd5565b9050919050565b5f612e1f826121c3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5157612e506124d7565b5b600182019050919050565b5f612e66826121c3565b9150612e71836121c3565b9250828203905081811115612e8957612e886124d7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f1b816122c1565b82525050565b5f612f2c8383612f12565b60208301905092915050565b5f602082019050919050565b5f612f4e82612ee9565b612f588185612ef3565b9350612f6383612f03565b805f5b83811015612f93578151612f7a8882612f21565b9750612f8583612f38565b925050600181019050612f66565b5085935050505092915050565b5f60a082019050612fb35f8301886121cc565b612fc0602083018761295e565b8181036040830152612fd28186612f44565b9050612fe16060830185612446565b612fee60808301846121cc565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61302f826121c3565b915061303a836121c3565b92508261304a57613049612ff8565b5b828204905092915050565b7f5361666543616c633a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7720646574656374656400000000000000000000000000000000000000000000602082015250565b5f6130af602a836121fe565b91506130ba82613055565b604082019050919050565b5f6020820190508181035f8301526130dc816130a3565b9050919050565b7f5361666543616c633a206164646974696f6e206f766572666c6f7720646574655f8201527f6374656400000000000000000000000000000000000000000000000000000000602082015250565b5f61313d6024836121fe565b9150613148826130e3565b604082019050919050565b5f6020820190508181035f83015261316a81613131565b905091905056fe5361666543616c633a206469766973696f6e206279207a65726f2064657465637465644945524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655361666543616c633a207375627472616374696f6e206f766572666c6f77206465746563746564a26469706673582212208ef7f4856b56e248285dd674281bcdbd60656d4a5623eacf6b0c331214e3ff4e64736f6c63430008140033
Verified Source Code Full Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: No
Drixon.sol 418 lines
// SPDX-License-Identifier: MIT
/**
Drixon — a lightning-fast Layer-1 Blockchain
Website: https://drixon.org
Telegram: https://t.me/drixonofficial
X/Twitter : https://x.com/drixonofficial
**/
pragma solidity >=0.8.20;
abstract contract BaseContext {
function caller() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(
address recipient,
uint256 amount
) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
library SafeCalc {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeCalc: addition overflow detected");
return c;
}
function subtract(uint256 a, uint256 b) internal pure returns (uint256) {
return subtract(a, b, "SafeCalc: subtraction overflow detected");
}
function subtract(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function multiply(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeCalc: multiplication overflow detected");
return c;
}
function divide(uint256 a, uint256 b) internal pure returns (uint256) {
return divide(a, b, "SafeCalc: division by zero detected");
}
function divide(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownership is BaseContext {
address private _owner;
event OwnerUpdated(address indexed previousOwner, address indexed newOwner);
constructor() {
address msgSender = caller();
_owner = msgSender;
emit OwnerUpdated(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == caller(), "Ownership: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnerUpdated(_owner, address(0));
_owner = address(0);
}
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IDEXRouter {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)
external
payable
returns (uint amountToken, uint amountETH, uint liquidity);
}
contract Drixon is BaseContext, IERC20, Ownership {
using SafeCalc for uint256;
mapping(address => bool) private _excludedFromFees;
mapping(address => uint256) private _accountBalances;
mapping(address => mapping(address => uint256)) private _tokenAllowances;
uint256 private _initialBuyFee = 20;
uint256 private _initialSellFee = 20;
uint256 private _finalBuyFee = 5;
uint256 private _finalSellFee = 5;
uint256 private _buyCountForFeeReduction = 20;
uint256 private _buyCountForSwapActivation = 20;
uint256 private _buyCount = 0;
uint8 private constant DECIMALS = 18;
uint256 private constant TOTAL_SUPPLY = 20000000000 * 10 ** DECIMALS;
string private constant NAME = unicode"Drixon";
string private constant SYMBOL = unicode"DRX";
uint256 public maxTxAmount = 400000000 * 10 ** DECIMALS;
uint256 public maxWalletAmount = 400000000 * 10 ** DECIMALS;
uint256 public swapThreshold = 40000000 * 10 ** DECIMALS;
uint256 public maxSwap = 400000000 * 10 ** DECIMALS;
address payable private _feeWallet;
IDEXRouter private dexRouter;
address private dexPair;
bool private inSwap = false;
bool private swapEnabled = false;
bool private tradingOpen = false;
event MaxTxAmountUpdated(uint _maxTransaction);
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor() {
_feeWallet = payable(caller());
_accountBalances[caller()] = TOTAL_SUPPLY;
_excludedFromFees[owner()] = true;
_excludedFromFees[address(this)] = true;
_excludedFromFees[_feeWallet] = true;
emit Transfer(address(0), caller(), TOTAL_SUPPLY);
}
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 TOTAL_SUPPLY;
}
function balanceOf(address account) public view override returns (uint256) {
return _accountBalances[account];
}
function transfer(
address recipient,
uint256 value
) public override returns (bool) {
_transfer(caller(), recipient, value);
return true;
}
function allowance(
address owner,
address spender
) public view override returns (uint256) {
return _tokenAllowances[owner][spender];
}
function approve(
address spender,
uint256 value
) public override returns (bool) {
_approve(caller(), spender, value);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 value
) public override returns (bool) {
_transfer(sender, recipient, value);
_approve(
sender,
caller(),
_tokenAllowances[sender][caller()].subtract(
value,
"IERC20: transfer amount exceeds allowance"
)
);
return true;
}
function _approve(address owner, address spender, uint256 value) private {
require(owner != address(0), "IERC20: approve from zero address");
require(spender != address(0), "IERC20: approve to zero address");
_tokenAllowances[owner][spender] = value;
emit Approval(owner, spender, value);
}
function _transfer(address from, address to, uint256 value) private {
require(from != address(0), "IERC20: transfer from zero address");
require(to != address(0), "IERC20: transfer to zero address");
require(value > 0, "Transfer amount must be greater than zero");
if (!tradingOpen) {
require(
_excludedFromFees[from] || _excludedFromFees[to],
"Trading not yet enabled"
);
}
uint256 feeAmount = 0;
if (from != owner() && to != owner()) {
if (from == dexPair || to == dexPair) {
if (
from == dexPair &&
to != address(dexRouter) &&
!_excludedFromFees[to]
) {
require(
value <= maxTxAmount,
"Exceeds max transaction limit."
);
require(
balanceOf(to) + value <= maxWalletAmount,
"Exceeds max wallet size."
);
feeAmount = value
.multiply(
(_buyCount > _buyCountForFeeReduction)
? _finalBuyFee
: _initialBuyFee
)
.divide(100);
_buyCount++;
}
if (to == dexPair && from != address(this)) {
feeAmount = value
.multiply(
(_buyCount > _buyCountForFeeReduction)
? _finalSellFee
: _initialSellFee
)
.divide(100);
}
uint256 contractBalance = balanceOf(address(this));
if (
!inSwap &&
to == dexPair &&
swapEnabled &&
contractBalance > swapThreshold &&
_buyCount > _buyCountForSwapActivation
) {
swapTokensForEth(
min(value, min(contractBalance, maxSwap))
);
uint256 contractEthBalance = address(this).balance;
if (contractEthBalance > 0) {
sendEthToFee(address(this).balance);
}
}
} else {
feeAmount = 0;
}
}
_accountBalances[from] = _accountBalances[from].subtract(value);
_accountBalances[to] = _accountBalances[to].add(
value.subtract(feeAmount)
);
if (feeAmount > 0) {
_accountBalances[address(this)] = _accountBalances[address(this)]
.add(feeAmount);
emit Transfer(from, address(this), feeAmount);
}
emit Transfer(from, to, value.subtract(feeAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = dexRouter.WETH();
_approve(address(this), address(dexRouter), tokenAmount);
dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function sendEthToFee(uint256 amount) private {
(bool success, ) = _feeWallet.call{value: amount}("");
require(success, "ETH transfer failed");
}
function manualSwapTokensForEth() external {
require(caller() == _feeWallet, "Caller is not authorized");
uint256 tokenBalance = balanceOf(address(this));
if (tokenBalance > 0) {
swapTokensForEth(tokenBalance);
}
uint256 ethBalance = address(this).balance;
if (ethBalance > 0) {
sendEthToFee(ethBalance);
}
}
function removeLimits() external onlyOwner {
maxTxAmount = TOTAL_SUPPLY;
maxWalletAmount = TOTAL_SUPPLY;
emit MaxTxAmountUpdated(TOTAL_SUPPLY);
}
function openTrading() external onlyOwner {
require(!tradingOpen, "Trading already enabled");
dexRouter = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address weth = dexRouter.WETH();
address existing = IDEXFactory(dexRouter.factory()).getPair(address(this), weth);
dexPair = (existing == address(0))
? IDEXFactory(dexRouter.factory()).createPair(address(this), weth)
: existing;
_approve(address(this), address(dexRouter), TOTAL_SUPPLY);
dexRouter.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp
);
swapEnabled = true;
tradingOpen = true;
}
function rescueETH(uint256 amount) external onlyOwner {
(bool success, ) = payable(owner()).call{value: amount}("");
require(success, "ETH transfer failed");
}
receive() external payable {}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
maxSwap 0xc4918b4e → uint256
maxTxAmount 0x8c0b5e22 → uint256
maxWalletAmount 0xaa4bde28 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 value
returns: bool
manualSwapTokensForEth 0xa2b17412
No parameters
openTrading 0xc9567bf9
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
rescueETH 0x9e252f00
uint256 amount
transfer 0xa9059cbb
address recipient
uint256 value
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 value
returns: bool
Recent Transactions
No transactions found for this address