Address Contract Verified
Address
0xa1e836D08AfA10F3366Dc48E6fBA4c2c45491111
Balance
0 ETH
Nonce
1
Code Size
10838 bytes
Creator
0x67CdDCFE...A183 at tx 0xc310708c...e6719d
Indexed Transactions
0
Contract Bytecode
10838 bytes
0x60806040526004361061010c575f3560e01c806395d89b4111610094578063c3f70b5211610063578063c3f70b521461037b578063dd62ed3e146103a5578063e8078d94146103e1578063f2fde38b146103eb578063f8b45b051461041357610113565b806395d89b41146102b1578063a0b2fb85146102db578063a35b4cef14610303578063a9059cbb1461033f57610113565b8063313ce567116100db578063313ce567146101e3578063368f48001461020d57806370a0823114610235578063715018a6146102715780638da5cb5b1461028757610113565b806306fdde0314610117578063095ea7b31461014157806318160ddd1461017d57806323b872dd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b61043d565b6040516101389190611d86565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190611e37565b61047a565b6040516101749190611e8f565b60405180910390f35b348015610188575f80fd5b50610191610567565b60405161019e9190611eb7565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c89190611ed0565b61058a565b6040516101da9190611e8f565b60405180910390f35b3480156101ee575f80fd5b506101f7610787565b6040516102049190611f3b565b60405180910390f35b348015610218575f80fd5b50610233600480360381019061022e9190611f8b565b61078f565b005b348015610240575f80fd5b5061025b60048036038101906102569190611fc9565b61094a565b6040516102689190611eb7565b60405180910390f35b34801561027c575f80fd5b50610285610990565b005b348015610292575f80fd5b5061029b610a95565b6040516102a89190612003565b60405180910390f35b3480156102bc575f80fd5b506102c5610ab8565b6040516102d29190611d86565b60405180910390f35b3480156102e6575f80fd5b5061030160048036038101906102fc9190612046565b610af5565b005b34801561030e575f80fd5b5061032960048036038101906103249190611fc9565b610c6b565b6040516103369190611e8f565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190611e37565b610cbd565b6040516103729190611e8f565b60405180910390f35b348015610386575f80fd5b5061038f610d19565b60405161039c9190611eb7565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190612084565b610d22565b6040516103d89190611eb7565b60405180910390f35b6103e9610da4565b005b3480156103f6575f80fd5b50610411600480360381019061040c91906120fd565b6112eb565b005b34801561041e575f80fd5b506104276113f1565b6040516104349190611eb7565b60405180910390f35b60606040518060400160405280601881526020017f4665617220556e6365727461696e7479202620446f7562740000000000000000815250905090565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105559190611eb7565b60405180910390a36001905092915050565b5f6009600a6105769190612284565b631908b10061058591906122ce565b905090565b5f610594846113fa565b6105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ca90612359565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610773578160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106f69190612377565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61077e84848461147a565b90509392505050565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610813906123f4565b60405180910390fd5b5f60016103e88461ffff166009600a6108359190612284565b631908b10061084491906122ce565b61084e91906122ce565b610858919061243f565b610862919061246f565b90506001548110156108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a0906124ec565b60405180910390fd5b806001819055505f60016103e88461ffff166009600a6108c99190612284565b631908b1006108d891906122ce565b6108e291906122ce565b6108ec919061243f565b6108f6919061246f565b905060025481101561093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093490612554565b60405180910390fd5b8060028190555050505050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a14906123f4565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610a8b9190612003565b60405180910390a1565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f4655440000000000000000000000000000000000000000000000000000000000815250905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906123f4565b60405180910390fd5b8015610c135760095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906125bc565b60405180910390fd5b5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f610cc7336113fa565b610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90612359565b60405180910390fd5b610d1133848461147a565b905092915050565b5f600154905090565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e28906123f4565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed290612624565b60405180910390fd5b600a5f9054906101000a900460ff1615610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f219061268c565b60405180910390fd5b5f341180610f3757505f47115b610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d906126f4565b60405180910390fd5b5f60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061275c565b60405180910390fd5b3360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c3919061278e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116d919061278e565b6040518363ffffffff1660e01b815260040161118a9291906127b9565b6020604051808303815f875af11580156111a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ca919061278e565b60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061125160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054475f611819565b600160095f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112cf611900565b5f600a60016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f906123f4565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113e6919061283b565b60405180910390a150565b5f600254905090565b5f805f9050600a5f9054906101000a900460ff161561141c5760019050611471565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561147057600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e09061289e565b60405180910390fd5b600a5f9054906101000a900460ff166115865760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90612359565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115ee57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561164557505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561169557611655848484611992565b611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b90612906565b60405180910390fd5b5b8160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116de9190612377565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611768919061246f565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118069190611eb7565b60405180910390a3600190509392505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508115611848575f90505b61185184611b1a565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198430875f8087426040518863ffffffff1660e01b81526004016118b69695949392919061295d565b60606040518083038185885af11580156118d2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118f791906129d0565b50505050505050565b606460016009600a6119129190612284565b631908b10061192191906122ce565b61192b91906122ce565b611935919061243f565b600181905550606460016009600a61194d9190612284565b631908b10061195c91906122ce565b61196691906122ce565b611970919061243f565b6002819055506001600a5f6101000a81548160ff021916908315150217905550565b5f8060019050600a5f9054906101000a900460ff1680156119fa575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a4d575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0f57600154831115611a64575f9050611b0e565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b0457506002548360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b02919061246f565b115b15611b0d575f90505b5b5b809150509392505050565b8060045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611cf9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611cf09190611eb7565b60405180910390a35b50565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d33578082015181840152602081019050611d18565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d5882611cfc565b611d628185611d06565b9350611d72818560208601611d16565b611d7b81611d3e565b840191505092915050565b5f6020820190508181035f830152611d9e8184611d4e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd382611daa565b9050919050565b611de381611dc9565b8114611ded575f80fd5b50565b5f81359050611dfe81611dda565b92915050565b5f819050919050565b611e1681611e04565b8114611e20575f80fd5b50565b5f81359050611e3181611e0d565b92915050565b5f8060408385031215611e4d57611e4c611da6565b5b5f611e5a85828601611df0565b9250506020611e6b85828601611e23565b9150509250929050565b5f8115159050919050565b611e8981611e75565b82525050565b5f602082019050611ea25f830184611e80565b92915050565b611eb181611e04565b82525050565b5f602082019050611eca5f830184611ea8565b92915050565b5f805f60608486031215611ee757611ee6611da6565b5b5f611ef486828701611df0565b9350506020611f0586828701611df0565b9250506040611f1686828701611e23565b9150509250925092565b5f60ff82169050919050565b611f3581611f20565b82525050565b5f602082019050611f4e5f830184611f2c565b92915050565b5f61ffff82169050919050565b611f6a81611f54565b8114611f74575f80fd5b50565b5f81359050611f8581611f61565b92915050565b5f8060408385031215611fa157611fa0611da6565b5b5f611fae85828601611f77565b9250506020611fbf85828601611f77565b9150509250929050565b5f60208284031215611fde57611fdd611da6565b5b5f611feb84828501611df0565b91505092915050565b611ffd81611dc9565b82525050565b5f6020820190506120165f830184611ff4565b92915050565b61202581611e75565b811461202f575f80fd5b50565b5f813590506120408161201c565b92915050565b5f806040838503121561205c5761205b611da6565b5b5f61206985828601611df0565b925050602061207a85828601612032565b9150509250929050565b5f806040838503121561209a57612099611da6565b5b5f6120a785828601611df0565b92505060206120b885828601611df0565b9150509250929050565b5f6120cc82611daa565b9050919050565b6120dc816120c2565b81146120e6575f80fd5b50565b5f813590506120f7816120d3565b92915050565b5f6020828403121561211257612111611da6565b5b5f61211f848285016120e9565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121aa5780860481111561218657612185612128565b5b60018516156121955780820291505b80810290506121a385612155565b945061216a565b94509492505050565b5f826121c2576001905061227d565b816121cf575f905061227d565b81600181146121e557600281146121ef5761221e565b600191505061227d565b60ff84111561220157612200612128565b5b8360020a91508482111561221857612217612128565b5b5061227d565b5060208310610133831016604e8410600b84101617156122535782820a90508381111561224e5761224d612128565b5b61227d565b6122608484846001612161565b9250905081840481111561227757612276612128565b5b81810290505b9392505050565b5f61228e82611e04565b915061229983611f20565b92506122c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121b3565b905092915050565b5f6122d882611e04565b91506122e383611e04565b92508282026122f181611e04565b9150828204841483151761230857612307612128565b5b5092915050565b7f54726164696e67206e6f74206f70656e000000000000000000000000000000005f82015250565b5f612343601083611d06565b915061234e8261230f565b602082019050919050565b5f6020820190508181035f83015261237081612337565b9050919050565b5f61238182611e04565b915061238c83611e04565b92508282039050818111156123a4576123a3612128565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697300000000000000005f82015250565b5f6123de601883611d06565b91506123e9826123aa565b602082019050919050565b5f6020820190508181035f83015261240b816123d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61244982611e04565b915061245483611e04565b92508261246457612463612412565b5b828204905092915050565b5f61247982611e04565b915061248483611e04565b925082820190508082111561249c5761249b612128565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f6124d6600a83611d06565b91506124e1826124a2565b602082019050919050565b5f6020820190508181035f830152612503816124ca565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f61253e600e83611d06565b91506125498261250a565b602082019050919050565b5f6020820190508181035f83015261256b81612532565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f6125a6601083611d06565b91506125b182612572565b602082019050919050565b5f6020820190508181035f8301526125d38161259a565b9050919050565b7f4c502065786973747300000000000000000000000000000000000000000000005f82015250565b5f61260e600983611d06565b9150612619826125da565b602082019050919050565b5f6020820190508181035f83015261263b81612602565b9050919050565b7f74726164696e67206973206f70656e00000000000000000000000000000000005f82015250565b5f612676600f83611d06565b915061268182612642565b602082019050919050565b5f6020820190508181035f8301526126a38161266a565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d6573736167650000005f82015250565b5f6126de601d83611d06565b91506126e9826126aa565b602082019050919050565b5f6020820190508181035f83015261270b816126d2565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e747261637400000000000000000000005f82015250565b5f612746601583611d06565b915061275182612712565b602082019050919050565b5f6020820190508181035f8301526127738161273a565b9050919050565b5f8151905061278881611dda565b92915050565b5f602082840312156127a3576127a2611da6565b5b5f6127b08482850161277a565b91505092915050565b5f6040820190506127cc5f830185611ff4565b6127d96020830184611ff4565b9392505050565b5f819050919050565b5f6128036127fe6127f984611daa565b6127e0565b611daa565b9050919050565b5f612814826127e9565b9050919050565b5f6128258261280a565b9050919050565b6128358161281b565b82525050565b5f60208201905061284e5f83018461282c565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c65740000005f82015250565b5f612888601d83611d06565b915061289382612854565b602082019050919050565b5f6020820190508181035f8301526128b58161287c565b9050919050565b7f54582065786365656473206c696d6974730000000000000000000000000000005f82015250565b5f6128f0601183611d06565b91506128fb826128bc565b602082019050919050565b5f6020820190508181035f83015261291d816128e4565b9050919050565b5f819050919050565b5f61294761294261293d84612924565b6127e0565b611e04565b9050919050565b6129578161292d565b82525050565b5f60c0820190506129705f830189611ff4565b61297d6020830188611ea8565b61298a604083018761294e565b612997606083018661294e565b6129a46080830185611ff4565b6129b160a0830184611ea8565b979650505050505050565b5f815190506129ca81611e0d565b92915050565b5f805f606084860312156129e7576129e6611da6565b5b5f6129f4868287016129bc565b9350506020612a05868287016129bc565b9250506040612a16868287016129bc565b915050925092509256fea26469706673582212201516b8ac7da2bff94995505b1dcdd075f757ac26cd5614e967bab86253d627bf64736f6c63430008160033
Verified Source Code Full Match
Compiler: v0.8.22+commit.4fc1097e
EVM: shanghai
Optimization: No
Fud.sol 354 lines
//SPDX-License-Identifier: MIT
/*
https://t.me/FudCoinErc20
https://fudcoinerc20.com
*/
pragma solidity 0.8.22;
interface IERC20 {
function totalSupply() external view returns (uint256);
function decimals() external view returns (uint8);
function symbol() external view returns (string memory);
function name() external view returns (string memory);
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
);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function WETH() external pure returns (address);
function factory() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
}
abstract contract Ownable {
address public owner;
constructor(address creatorOwner) {
owner = creatorOwner;
}
modifier onlyOwner() {
require(msg.sender == owner, "Only owner can call this");
_;
}
function transferOwnership(address payable newOwner) external onlyOwner {
owner = newOwner;
emit OwnershipTransferred(newOwner);
}
function renounceOwnership() external onlyOwner {
owner = address(0);
emit OwnershipTransferred(address(0));
}
event OwnershipTransferred(address owner);
}
contract Fud is IERC20, Ownable {
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 420_000_000 * (10**_decimals);
string private constant _name = "Fear Uncertainty & Doubt";
string private constant _symbol = "FUD";
uint256 private _maxTxAmount = _totalSupply;
uint256 private _maxWalletAmount = _totalSupply;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
mapping(address => bool) private _noLimits;
address private liquidityProvider;
address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
address private _primaryLP;
mapping(address => bool) private _isLP;
bool private _tradingOpen;
bool private _inTaxSwap = false;
modifier lockTaxSwap() {
_inTaxSwap = true;
_;
_inTaxSwap = false;
}
constructor() Ownable(msg.sender) {
_balances[owner] = _totalSupply * 0 / 100;
emit Transfer(address(0), owner, _balances[owner]);
_balances[address(this)] = _totalSupply - _balances[owner];
emit Transfer(address(0), address(this), _balances[address(this)]);
_noLimits[owner] = true;
_noLimits[address(this)] = true;
_noLimits[_swapRouterAddress] = true;
}
receive() external payable {}
function totalSupply() external pure override returns (uint256) {
return _totalSupply;
}
function decimals() external pure override returns (uint8) {
return _decimals;
}
function symbol() external pure override returns (string memory) {
return _symbol;
}
function name() external pure override returns (string memory) {
return _name;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address holder, address spender)
external
view
override
returns (uint256)
{
return _allowances[holder][spender];
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address recipient, uint256 amount)
external
override
returns (bool)
{
require(_checkTradingOpen(msg.sender), "Trading not open");
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
require(_checkTradingOpen(sender), "Trading not open");
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] =
_allowances[sender][msg.sender] -
amount;
}
return _transferFrom(sender, recipient, amount);
}
function _approveRouter(uint256 _tokenAmount) internal {
if (_allowances[address(this)][_swapRouterAddress] < _tokenAmount) {
_allowances[address(this)][_swapRouterAddress] = type(uint256).max;
emit Approval(address(this), _swapRouterAddress, type(uint256).max);
}
}
function addLiquidity() external payable onlyOwner lockTaxSwap {
require(_primaryLP == address(0), "LP exists");
require(!_tradingOpen, "trading is open");
require(
msg.value > 0 || address(this).balance > 0,
"No ETH in contract or message"
);
require(_balances[address(this)] > 0, "No tokens in contract");
liquidityProvider = msg.sender;
_primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(
address(this),
_primarySwapRouter.WETH()
);
_addLiquidity(_balances[address(this)], address(this).balance, false);
_isLP[_primaryLP] = true;
_openTrading();
}
function _addLiquidity(
uint256 _tokenAmount,
uint256 _ethAmountWei,
bool autoburn
) internal {
address lpTokenRecipient = liquidityProvider;
if (autoburn) {
lpTokenRecipient = address(0);
}
_approveRouter(_tokenAmount);
_primarySwapRouter.addLiquidityETH{value: _ethAmountWei}(
address(this),
_tokenAmount,
0,
0,
lpTokenRecipient,
block.timestamp
);
}
function _openTrading() internal {
_maxTxAmount = _totalSupply * 1 / 100;
_maxWalletAmount = _totalSupply * 1 / 100;
_tradingOpen = true;
}
function _transferFrom(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
require(sender != address(0), "No transfers from Zero wallet");
if (!_tradingOpen) {
require(_noLimits[sender], "Trading not open");
}
if (
sender != address(this) &&
recipient != address(this) &&
sender != owner
) {
require(
_checkLimits(sender, recipient, amount),
"TX exceeds limits"
);
}
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function _checkLimits(
address sender,
address recipient,
uint256 transferAmount
) internal view returns (bool) {
bool limitCheckPassed = true;
if (_tradingOpen && !_noLimits[sender] && !_noLimits[recipient]) {
if (transferAmount > _maxTxAmount) {
limitCheckPassed = false;
} else if (
!_isLP[recipient] &&
(_balances[recipient] + transferAmount > _maxWalletAmount)
) {
limitCheckPassed = false;
}
}
return limitCheckPassed;
}
function _checkTradingOpen(address sender) private view returns (bool) {
bool checkResult = false;
if (_tradingOpen) {
checkResult = true;
} else if (_noLimits[sender]) {
checkResult = true;
}
return checkResult;
}
function isUnlimited(address wallet) external view returns (bool limits) {
return (_noLimits[wallet]);
}
function setUnlimited(
address wallet,
bool noLimits
) external onlyOwner {
if (noLimits) {
require(!_isLP[wallet], "Cannot exempt LP");
}
_noLimits[wallet] = noLimits;
}
function maxWallet() external view returns (uint256) {
return _maxWalletAmount;
}
function maxTransaction() external view returns (uint256) {
return _maxTxAmount;
}
function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille)
external
onlyOwner
{
uint256 newTxAmt = (_totalSupply * maxTransactionPermille) / 1000 + 1;
require(newTxAmt >= _maxTxAmount, "tx too low");
_maxTxAmount = newTxAmt;
uint256 newWalletAmt = (_totalSupply * maxWalletPermille) / 1000 + 1;
require(newWalletAmt >= _maxWalletAmount, "wallet too low");
_maxWalletAmount = newWalletAmt;
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isUnlimited 0xa35b4cef → bool
maxTransaction 0xc3f70b52 → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidity 0xe8078d94
No parameters
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
renounceOwnership 0x715018a6
No parameters
setLimits 0x368f4800
uint16 maxTransactionPermille
uint16 maxWalletPermille
setUnlimited 0xa0b2fb85
address wallet
bool noLimits
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address