Address Contract Partially Verified
Address
0xc11158c5dA9db1D553ED28f0C2BA1CbEDD42CFcb
Balance
0.349742 ETH
Nonce
1
Code Size
11185 bytes
Creator
0x67bCa38d...bf6F at tx 0x7fa7decf...8beab8
Indexed Transactions
1 (24,444,989 → 24,444,989)
Gas Used (indexed)
46,971
Contract Bytecode
11185 bytes
0x6080604052600436106101ba575f3560e01c806370a08231116100eb578063a9059cbb11610089578063c647b20e11610063578063c647b20e14610615578063dd62ed3e1461063d578063e9b8e23c14610679578063ea2f0b37146106a3576101c1565b8063a9059cbb14610585578063b2bdfa7b146105c1578063c335b287146105eb576101c1565b80638da5cb5b116100c55780638da5cb5b146104cd57806395d89b41146104f7578063a457c2d714610521578063a8602fea1461055d576101c1565b806370a0823114610453578063715018a61461048f57806380c581d1146104a5576101c1565b8063313ce56711610158578063478b7f5311610132578063478b7f531461039b57806349bd5a5e146103c55780634fb2e45d146103ef5780635342acb414610417576101c1565b8063313ce5671461030d5780633950935114610337578063437823ec14610373576101c1565b80631694505e116101945780631694505e1461025557806318160ddd1461027f57806323141e9e146102a957806323b872dd146102d1576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806311ffeaf21461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106cb565b6040516101e69190611f38565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190611fe9565b61075b565b6040516102229190612041565b60405180910390f35b348015610236575f80fd5b5061023f610778565b60405161024c9190612069565b60405180910390f35b348015610260575f80fd5b5061026961079d565b60405161027691906120dd565b60405180910390f35b34801561028a575f80fd5b506102936107c2565b6040516102a09190612105565b60405180910390f35b3480156102b4575f80fd5b506102cf60048036038101906102ca919061211e565b6107cb565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190612149565b61082e565b6040516103049190612041565b60405180910390f35b348015610318575f80fd5b50610321610902565b60405161032e91906121b4565b60405180910390f35b348015610342575f80fd5b5061035d60048036038101906103589190611fe9565b610917565b60405161036a9190612041565b60405180910390f35b34801561037e575f80fd5b50610399600480360381019061039491906121cd565b6109c5565b005b3480156103a6575f80fd5b506103af610a76565b6040516103bc9190612105565b60405180910390f35b3480156103d0575f80fd5b506103d9610a7c565b6040516103e69190612069565b60405180910390f35b3480156103fa575f80fd5b50610415600480360381019061041091906121cd565b610aa1565b005b348015610422575f80fd5b5061043d600480360381019061043891906121cd565b610cf3565b60405161044a9190612041565b60405180910390f35b34801561045e575f80fd5b50610479600480360381019061047491906121cd565b610d45565b6040516104869190612105565b60405180910390f35b34801561049a575f80fd5b506104a3610d8a565b005b3480156104b0575f80fd5b506104cb60048036038101906104c69190612222565b610f18565b005b3480156104d8575f80fd5b506104e161102f565b6040516104ee9190612069565b60405180910390f35b348015610502575f80fd5b5061050b611058565b6040516105189190611f38565b60405180910390f35b34801561052c575f80fd5b5061054760048036038101906105429190611fe9565b6110e8565b6040516105549190612041565b60405180910390f35b348015610568575f80fd5b50610583600480360381019061057e91906121cd565b6111b0565b005b348015610590575f80fd5b506105ab60048036038101906105a69190611fe9565b6112ba565b6040516105b89190612041565b60405180910390f35b3480156105cc575f80fd5b506105d56112d7565b6040516105e29190612069565b60405180910390f35b3480156105f6575f80fd5b506105ff6112fd565b60405161060c9190612105565b60405180910390f35b348015610620575f80fd5b5061063b60048036038101906106369190612260565b611303565b005b348015610648575f80fd5b50610663600480360381019061065e919061229e565b6113f6565b6040516106709190612105565b60405180910390f35b348015610684575f80fd5b5061068d611478565b60405161069a9190612105565b60405180910390f35b3480156106ae575f80fd5b506106c960048036038101906106c491906121cd565b61147e565b005b6060600380546106da90612309565b80601f016020809104026020016040519081016040528092919081815260200182805461070690612309565b80156107515780601f1061072857610100808354040283529160200191610751565b820191905f5260205f20905b81548152906001019060200180831161073457829003601f168201915b5050505050905090565b5f61076e61076761152e565b8484611535565b6001905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610824575f80fd5b8060108190555050565b5f61083a8484846116f8565b6108f78461084661152e565b6108f285604051806060016040528060288152602001612b2f6028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108a961152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b600190509392505050565b5f60055f9054906101000a900460ff16905090565b5f6109bb61092361152e565b846109b68560015f61093361152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1e575f80fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60105481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f906123a9565b60405180910390fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a350565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de3575f80fd5b5f600b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f71575f80fd5b5f151581151503610fd5575f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061102b565b6001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461106790612309565b80601f016020809104026020016040519081016040528092919081815260200182805461109390612309565b80156110de5780601f106110b5576101008083540402835291602001916110de565b820191905f5260205f20905b8154815290600101906020018083116110c157829003601f168201915b5050505050905090565b5f6111a66110f461152e565b846111a185604051806060016040528060258152602001612b576025913960015f61111d61152e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b611535565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611209575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612411565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6112cd6112c661152e565b84846116f8565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461135c575f80fd5b600a8211156113a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113979061249f565b60405180910390fd5b600a8111156113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db9061252d565b60405180910390fd5b81600881905550806009819055505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114d7575f80fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906125bb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160890612649565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116eb9190612105565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612765565b60405180910390fd5b5f8111611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906127f3565b60405180910390fd5b5f61182030610d45565b905060105481106118585761185730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611afa565b5b5f60019050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118f85750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611901575f90505b8015611a2e575f600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611987576119806103e861197260085487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b9050611a03565b600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611a02576119ff6103e86119f160095487611d8390919063ffffffff16565b611dfa90919063ffffffff16565b90505b5b611a168185611e5190919063ffffffff16565b93505f811115611a2c57611a2b863083611afa565b5b505b611a39858585611afa565b5050505050565b5f838311158290611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e9190611f38565b60405180910390fd5b508284611a94919061283e565b90509392505050565b5f808284611aab9190612871565b905083811015611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906128ee565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906126d7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90612765565b60405180910390fd5b611be1838383611ea9565b611c4a81604051806060016040528060268152602001612b09602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a409092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cd9815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9d90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d769190612105565b60405180910390a3505050565b5f808303611d93575f9050611df4565b5f8284611da0919061290c565b9050828482611daf919061297a565b14611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690612a1a565b60405180910390fd5b809150505b92915050565b5f808211611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3490612a82565b60405180910390fd5b8183611e49919061297a565b905092915050565b5f82821115611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90612aea565b60405180910390fd5b8183611ea1919061283e565b905092915050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ee5578082015181840152602081019050611eca565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0a82611eae565b611f148185611eb8565b9350611f24818560208601611ec8565b611f2d81611ef0565b840191505092915050565b5f6020820190508181035f830152611f508184611f00565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f8582611f5c565b9050919050565b611f9581611f7b565b8114611f9f575f80fd5b50565b5f81359050611fb081611f8c565b92915050565b5f819050919050565b611fc881611fb6565b8114611fd2575f80fd5b50565b5f81359050611fe381611fbf565b92915050565b5f8060408385031215611fff57611ffe611f58565b5b5f61200c85828601611fa2565b925050602061201d85828601611fd5565b9150509250929050565b5f8115159050919050565b61203b81612027565b82525050565b5f6020820190506120545f830184612032565b92915050565b61206381611f7b565b82525050565b5f60208201905061207c5f83018461205a565b92915050565b5f819050919050565b5f6120a56120a061209b84611f5c565b612082565b611f5c565b9050919050565b5f6120b68261208b565b9050919050565b5f6120c7826120ac565b9050919050565b6120d7816120bd565b82525050565b5f6020820190506120f05f8301846120ce565b92915050565b6120ff81611fb6565b82525050565b5f6020820190506121185f8301846120f6565b92915050565b5f6020828403121561213357612132611f58565b5b5f61214084828501611fd5565b91505092915050565b5f805f606084860312156121605761215f611f58565b5b5f61216d86828701611fa2565b935050602061217e86828701611fa2565b925050604061218f86828701611fd5565b9150509250925092565b5f60ff82169050919050565b6121ae81612199565b82525050565b5f6020820190506121c75f8301846121a5565b92915050565b5f602082840312156121e2576121e1611f58565b5b5f6121ef84828501611fa2565b91505092915050565b61220181612027565b811461220b575f80fd5b50565b5f8135905061221c816121f8565b92915050565b5f806040838503121561223857612237611f58565b5b5f61224585828601611fa2565b92505060206122568582860161220e565b9150509250929050565b5f806040838503121561227657612275611f58565b5b5f61228385828601611fd5565b925050602061229485828601611fd5565b9150509250929050565b5f80604083850312156122b4576122b3611f58565b5b5f6122c185828601611fa2565b92505060206122d285828601611fa2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061232057607f821691505b602082108103612333576123326122dc565b5b50919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f612393603d83611eb8565b915061239e82612339565b604082019050919050565b5f6020820190508181035f8301526123c081612387565b9050919050565b7f54726561737572792077616c6c65742063616e2774206265207a65726f0000005f82015250565b5f6123fb601d83611eb8565b9150612406826123c7565b602082019050919050565b5f6020820190508181035f830152612428816123ef565b9050919050565b7f427579206665652073686f756c646e277420626520686967686572207468616e5f8201527f2031302028312529000000000000000000000000000000000000000000000000602082015250565b5f612489602883611eb8565b91506124948261242f565b604082019050919050565b5f6020820190508181035f8301526124b68161247d565b9050919050565b7f53656c6c206665652073686f756c646e277420626520686967686572207468615f8201527f6e20313020283125290000000000000000000000000000000000000000000000602082015250565b5f612517602983611eb8565b9150612522826124bd565b604082019050919050565b5f6020820190508181035f8301526125448161250b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125a5602483611eb8565b91506125b08261254b565b604082019050919050565b5f6020820190508181035f8301526125d281612599565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612633602283611eb8565b915061263e826125d9565b604082019050919050565b5f6020820190508181035f83015261266081612627565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126c1602583611eb8565b91506126cc82612667565b604082019050919050565b5f6020820190508181035f8301526126ee816126b5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61274f602383611eb8565b915061275a826126f5565b604082019050919050565b5f6020820190508181035f83015261277c81612743565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127dd602983611eb8565b91506127e882612783565b604082019050919050565b5f6020820190508181035f83015261280a816127d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61284882611fb6565b915061285383611fb6565b925082820390508181111561286b5761286a612811565b5b92915050565b5f61287b82611fb6565b915061288683611fb6565b925082820190508082111561289e5761289d612811565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6128d8601b83611eb8565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611fb6565b915061292183611fb6565b925082820261292f81611fb6565b9150828204841483151761294657612945612811565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61298482611fb6565b915061298f83611fb6565b92508261299f5761299e61294d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a04602183611eb8565b9150612a0f826129aa565b604082019050919050565b5f6020820190508181035f830152612a31816129f8565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f612a6c601a83611eb8565b9150612a7782612a38565b602082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612ad4601e83611eb8565b9150612adf82612aa0565b602082019050919050565b5f6020820190508181035f830152612b0181612ac8565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d4fc07722dec2f5d06d7650f58e511c5a357e1bc4b88860cfb2585db7fd2bc6c64736f6c63430008180033
Verified Source Code Partial Match
Compiler: v0.8.24+commit.e11b9ed9
EVM: shanghai
Optimization: No
wPAW.sol 535 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0, "SafeMath: modulo by zero");
return a % b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a / b;
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
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 ERC20 is Context, IERC20 {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
uint8 private _decimals;
constructor (string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
_decimals = 18;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply = _totalSupply.add(amount);
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
emit Transfer(account, address(0), amount);
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
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);
}
function _setupDecimals(uint8 decimals_) internal virtual {
_decimals = decimals_;
}
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}
contract Ownable {
address public _owner;
event onOwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == _owner);
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function transferOwnership(address _newOwner) internal {
require(_newOwner != address(0));
emit onOwnershipTransferred(_owner, _newOwner);
_owner = _newOwner;
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external payable returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external payable returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin, address[] calldata path, address to, uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline
) external;
}
contract wPAW is ERC20, Ownable {
using SafeMath for uint256;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapV2Pair;
uint256 public buyingTax = 10; // 1%
uint256 public sellingTax = 10; // 1%
address public TreasuryWallet;
mapping (address => bool) private _isExcludedFromFees;
mapping (address => bool) lpPairs;
uint256 private _totalSupply = 1000000000000000 * (10**18);
string private _name = "Wrapped PAW";
string private _symbol = "wPAW";
uint256 public thresholdAmountToSendTax = _totalSupply / 10000;
constructor () ERC20(_name, _symbol) {
address _routerAddress;
if (block.chainid == 56) { //BNB Mainnet - Pancakeswap
_routerAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
} else if (block.chainid == 97) { //BNB Testnet
_routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3;
} else if (block.chainid == 1 || block.chainid == 5) { // ETH & ETH Goerli Testnet - UniswapV2
_routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
} else if (block.chainid == 42161) { // Arbitrum One - UniswapV2
_routerAddress = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;
} else if (block.chainid == 8453) { // Base mainnet - UniswapV2
_routerAddress = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;
} else if (block.chainid == 137) { // POLYGON - QuickSwap
_routerAddress = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff;
} else if (block.chainid == 11155111) { // ETH Sepolia testnet
_routerAddress = 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008;
} else if (block.chainid == 81457) { // Blast main net - UniSwapV2
_routerAddress = 0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035;
} else {
revert();
}
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_routerAddress);
address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
uniswapV2Pair = _uniswapV2Pair;
lpPairs[uniswapV2Pair] = true;
// exclude from paying fees
excludeFromFee(owner());
excludeFromFee(address(this));
TreasuryWallet = owner();
_mint(owner(), _totalSupply);
}
receive() external payable {}
// This allows for removal of ownership privelages from the owner once renounced or transferred.
function transferOwner(address newOwner) external onlyOwner() {
require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
_isExcludedFromFees[_owner] = false;
_isExcludedFromFees[newOwner] = true;
_owner = newOwner;
emit onOwnershipTransferred(_owner, newOwner);
}
function renounceOwnership() public virtual onlyOwner() {
_isExcludedFromFees[_owner] = false;
_owner = address(0);
emit onOwnershipTransferred(_owner, address(0));
}
function setLpPair(address pair, bool enabled) external onlyOwner {
if (enabled == false) {
lpPairs[pair] = false;
} else {
lpPairs[pair] = true;
}
}
function isExcludedFromFee(address account) public view returns(bool) {
return _isExcludedFromFees[account];
}
function excludeFromFee(address account) public onlyOwner {
_isExcludedFromFees[account] = true;
}
function includeInFee(address account) public onlyOwner {
_isExcludedFromFees[account] = false;
}
function setTaxes(uint256 _buyTax, uint256 _sellTax) public onlyOwner {
require(_buyTax <= 10, "Buy fee shouldn't be higher than 10 (1%)");
require(_sellTax <= 10, "Sell fee shouldn't be higher than 10 (1%)");
buyingTax = _buyTax;
sellingTax = _sellTax;
}
function setThresholdToSendTax(uint256 _newThresholdToSend) public onlyOwner {
thresholdAmountToSendTax = _newThresholdToSend;
}
function setTreasuryWallet(address _newTreasuryWallet) public onlyOwner {
require(_newTreasuryWallet != address(0), "Treasury wallet can't be zero");
TreasuryWallet = _newTreasuryWallet;
}
function _transfer(
address from,
address to,
uint256 amount
) internal override {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 contractTokenBalance = balanceOf(address(this));
if (
contractTokenBalance >= thresholdAmountToSendTax
) {
super._transfer(address(this), TreasuryWallet, contractTokenBalance);
}
bool takeFee = true;
if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
takeFee = false;
}
if(takeFee) {
uint256 fees = 0;
if(lpPairs[from]){ // Buy Token
fees = amount.mul(buyingTax).div(1000);
}else if(lpPairs[to]){
fees = amount.mul(sellingTax).div(1000);
}
amount = amount.sub(fees);
if(fees > 0)
super._transfer(from, address(this), fees);
}
super._transfer(from, to, amount);
}
}
Read Contract
TreasuryWallet 0x11ffeaf2 → address
_owner 0xb2bdfa7b → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyingTax 0xe9b8e23c → uint256
decimals 0x313ce567 → uint8
isExcludedFromFee 0x5342acb4 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sellingTax 0xc335b287 → uint256
symbol 0x95d89b41 → string
thresholdAmountToSendTax 0x478b7f53 → uint256
totalSupply 0x18160ddd → uint256
uniswapV2Pair 0x49bd5a5e → address
uniswapV2Router 0x1694505e → address
Write Contract 13 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
excludeFromFee 0x437823ec
address account
includeInFee 0xea2f0b37
address account
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
setLpPair 0x80c581d1
address pair
bool enabled
setTaxes 0xc647b20e
uint256 _buyTax
uint256 _sellTax
setThresholdToSendTax 0x23141e9e
uint256 _newThresholdToSend
setTreasuryWallet 0xa8602fea
address _newTreasuryWallet
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwner 0x4fb2e45d
address newOwner
Top Interactions
| Address | Txns | Sent | Received |
|---|---|---|---|
| 0xEa2793Ea...62dF | 1 | 1 |
Recent Transactions
|
| Hash | Block | Age | From/To | Value | |
|---|---|---|---|---|---|
| 0x155ea6be...ff46d3 | 24,444,989 | IN | 0xEa2793Ea...62dF | 0 ETH |