Address Contract Partially Verified
Address
0xC26EDaACC026a22157C292cA67F505af4a428DE7
Balance
0.000000000 ETH
Nonce
1
Code Size
20481 bytes
Creator
0xb0D47Ef4...5091 at tx 0x6eca40d3...87c578
Indexed Transactions
0
Contract Bytecode
20481 bytes
0x6080604052600436106101855760003560e01c806391f85fda116100d1578063c7ab8d9d1161008a578063e8078d9411610064578063e8078d94146106a0578063f2fde38b146106b7578063f37c4bce146106e0578063f9f92be4146107095761029f565b8063c7ab8d9d146105fd578063d0040d701461063a578063dd62ed3e146106635761029f565b806391f85fda1461050357806395d89b411461051a57806398d5a5cb14610545578063a9059cbb1461056e578063a98f6f90146105ab578063ab9562fe146105d45761029f565b8063313ce5671161013e57806370a082311161011857806370a082311461043357806378781fc9146104705780638a13792e1461049b5780638da5cb5b146104d85761029f565b8063313ce567146103b457806353477d29146103df57806354486ac3146104085761029f565b806306fdde03146102a4578063095ea7b3146102cf57806318160ddd1461030c5780631c815b491461033757806323b872dd146103605780632def66201461039d5761029f565b3661029f57601160009054906101000a900460ff1661029d5760003390506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf6eac2f3084346040518463ffffffff1660e01b815260040161020493929190613d8c565b6020604051808303816000875af1158015610223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102479190613df4565b9050600081111561029a578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610298573d6000803e3d6000fd5b505b50505b005b600080fd5b3480156102b057600080fd5b506102b9610732565b6040516102c69190613eba565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190613f1d565b6107c4565b6040516103039190613f78565b60405180910390f35b34801561031857600080fd5b506103216107e2565b60405161032e9190613f93565b60405180910390f35b34801561034357600080fd5b5061035e60048036038101906103599190613fda565b6107f1565b005b34801561036c57600080fd5b506103876004803603810190610382919061401a565b61098c565b6040516103949190613f78565b60405180910390f35b3480156103a957600080fd5b506103b2610a65565b005b3480156103c057600080fd5b506103c9610bb3565b6040516103d69190614089565b60405180910390f35b3480156103eb57600080fd5b50610406600480360381019061040191906140a4565b610bca565b005b34801561041457600080fd5b5061041d610cba565b60405161042a9190613f93565b60405180910390f35b34801561043f57600080fd5b5061045a600480360381019061045591906140a4565b610cc0565b6040516104679190613f93565b60405180910390f35b34801561047c57600080fd5b50610485610d09565b6040516104929190613f78565b60405180910390f35b3480156104a757600080fd5b506104c260048036038101906104bd91906140d1565b610d16565b6040516104cf9190613f93565b60405180910390f35b3480156104e457600080fd5b506104ed610e19565b6040516104fa91906140fe565b60405180910390f35b34801561050f57600080fd5b50610518610e42565b005b34801561052657600080fd5b5061052f610f18565b60405161053c9190613eba565b60405180910390f35b34801561055157600080fd5b5061056c600480360381019061056791906140a4565b610faa565b005b34801561057a57600080fd5b5061059560048036038101906105909190613f1d565b61109a565b6040516105a29190613f78565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190614145565b6110b8565b005b3480156105e057600080fd5b506105fb60048036038101906105f69190613fda565b6111d7565b005b34801561060957600080fd5b50610624600480360381019061061f91906140a4565b611313565b6040516106319190613f78565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c91906140a4565b611369565b005b34801561066f57600080fd5b5061068a60048036038101906106859190614172565b611459565b6040516106979190613f93565b60405180910390f35b3480156106ac57600080fd5b506106b56114e0565b005b3480156106c357600080fd5b506106de60048036038101906106d991906140a4565b611b33565b005b3480156106ec57600080fd5b50610707600480360381019061070291906140a4565b611c85565b005b34801561071557600080fd5b50610730600480360381019061072b91906140a4565b611e2f565b005b6060600c8054610741906141e1565b80601f016020809104026020016040519081016040528092919081815260200182805461076d906141e1565b80156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b5050505050905090565b60006107d86107d1612111565b8484612119565b6001905092915050565b600066038d7ea4c68000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610830612111565b73ffffffffffffffffffffffffffffffffffffffff1614610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d9061425f565b60405180910390fd5b61089082826122e4565b60008111156108f6576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061094f565b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b7fa6786a8b1b962e9b5d6c06da5fab4f1e2ce62d10444becfffa85d4523c8a25a682826040516109809291906142de565b60405180910390a15050565b6000610999848484612744565b610a5a846109a5612111565b610a5585604051806060016040528060288152602001614fa460289139601a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0b612111565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ad79092919063ffffffff16565b612119565b600190509392505050565b601160009054906101000a900460ff1615610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac90614379565b60405180910390fd5b60003390506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f21f3c0830846040518363ffffffff1660e01b8152600401610b19929190614399565b6020604051808303816000875af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5c9190613df4565b90506000811115610baf578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610bad573d6000803e3d6000fd5b505b5050565b6000600e60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c09612111565b73ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c569061425f565b60405180910390fd5b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601c54421015905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d58612111565b73ffffffffffffffffffffffffffffffffffffffff1614610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da59061425f565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610e0657610e056143c2565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e81612111565b73ffffffffffffffffffffffffffffffffffffffff1614610ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ece9061425f565b60405180910390fd5b610f0e610f096009610efb600a610eed30610cc0565b61201f90919063ffffffff16565b612b3b90919063ffffffff16565b612bb6565b610f16612e2f565b565b6060600d8054610f27906141e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f53906141e1565b8015610fa05780601f10610f7557610100808354040283529160200191610fa0565b820191906000526020600020905b815481529060010190602001808311610f8357829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe9612111565b73ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110369061425f565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006110ae6110a7612111565b8484612744565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f7612111565b73ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111449061425f565b60405180910390fd5b601d60019054906101000a900460ff161561119d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111949061443d565b60405180910390fd5b6111b38160ff164261206990919063ffffffff16565b601c819055506001601d60016101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611216612111565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112639061425f565b60405180910390fd5b611299600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006122e4565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060048190555061130f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004546122e4565b5050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113a8612111565b73ffffffffffffffffffffffffffffffffffffffff16146113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f59061425f565b60405180910390fd5b6001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661151f612111565b73ffffffffffffffffffffffffffffffffffffffff1614611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c9061425f565b60405180910390fd5b601160009054906101000a900460ff16156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc906144a9565b60405180910390fd5b60004790506115fe30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c68000612119565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f91906144de565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173c91906144de565b6040518363ffffffff1660e01b815260040161175992919061450b565b6020604051808303816000875af1158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c91906144de565b600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823061182530610cc0565b600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161186d9695949392919061456f565b60606040518083038185885af115801561188b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118b091906145d0565b505050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611930929190614623565b6020604051808303816000875af115801561194f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119739190614678565b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd4f8a7530600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119ec62278d004261206990919063ffffffff16565b85600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b8152600401611a309594939291906146a5565b600060405180830381600087803b158015611a4a57600080fd5b505af1158015611a5e573d6000803e3d6000fd5b50505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663edb601116040518163ffffffff1660e01b8152600401602060405180830381865afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af39190613df4565b601581905550611b0f62093a804261206990919063ffffffff16565b601c819055506001601160006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b72612111565b73ffffffffffffffffffffffffffffffffffffffff1614611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf9061425f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1891906144de565b73ffffffffffffffffffffffffffffffffffffffff16611d36612111565b73ffffffffffffffffffffffffffffffffffffffff161480611dac5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d94612111565b73ffffffffffffffffffffffffffffffffffffffff16145b611deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de290614744565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611e6e612111565b73ffffffffffffffffffffffffffffffffffffffff1614611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9061425f565b60405180910390fd5b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4c906147b0565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb9061481c565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061206183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fd5565b905092915050565b6000808284612078919061486b565b9050838110156120bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b49061490d565b60405180910390fd5b8091505092915050565b600061210983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ad7565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612189576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121809061499f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f090614a31565b60405180910390fd5b80601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122d79190613f93565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612323612111565b73ffffffffffffffffffffffffffffffffffffffff1614612379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123709061425f565b60405180910390fd5b60008110156123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b490614a9d565b60405180910390fd5b600b600a54111561240c576000811461240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290614b09565b60405180910390fd5b5b600b60009054906101000a900460ff16156124da57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124d957600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124b8612111565b73ffffffffffffffffffffffffffffffffffffffff16146124d857600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561264b5761290461253f8360095461206990919063ffffffff16565b111561254a57600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016006805490506125e89190614b29565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126408260095461206990919063ffffffff16565b60098190555061271b565b600060068281548110612661576126606143c2565b5b906000526020600020015490506129046126988261268a8660095461206990919063ffffffff16565b6120c790919063ffffffff16565b11156126a357600080fd5b82600683815481106126b8576126b76143c2565b5b90600052602060002001819055506126ed816126df8560095461206990919063ffffffff16565b6120c790919063ffffffff16565b6009819055506000831415612719576127126001600a546120c790919063ffffffff16565b600a819055505b505b600082111561273f576001600a6000828254612737919061486b565b925050819055505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ab90614bcf565b60405180910390fd5b600081116127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90614c3b565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561289b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128f15750601760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6128fa57600080fd5b61290382613038565b1561291f5760105461291483610cc0565b1061291e57600080fd5b5b600061292b8484613147565b1561297e57601c5442101561293f57600080fd5b61294984846132a3565b156129635761295661338c565b82111561296257600080fd5b5b61296e8484846133db565b905061297984613559565b612ac5565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612a2a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612ac457601160009054906101000a900460ff168015612a515750612a4f8461358a565b155b8015612a635750612a61846135e4565b155b15612ac357612a8062093a80601c5461206990919063ffffffff16565b421015612ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab990614ca7565b60405180910390fd5b5b5b5b612ad18484848461361c565b50505050565b6000838311158290612b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b169190613eba565b60405180910390fd5b5060008385612b2e9190614b29565b9050809150509392505050565b600080831415612b4e5760009050612bb0565b60008284612b5c9190614cc7565b9050828482612b6b9190614d50565b14612bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba290614df3565b60405180910390fd5b809150505b92915050565b6001601d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612bee57612bed614e13565b5b604051908082528060200260200182016040528015612c1c5781602001602082028036833780820191505090505b5090503081600081518110612c3457612c336143c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cff91906144de565b81600181518110612d1357612d126143c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d7a30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612119565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612dde959493929190614f00565b600060405180830381600087803b158015612df857600080fd5b505af1158015612e0c573d6000803e3d6000fd5b50505050506000601d60006101000a81548160ff02191690831515021790555050565b6000479050601b548111612e435750612fd3565b6000612e5a601b54836120c790919063ffffffff16565b90506000612e6661385e565b90506001811015612e7957505050612fd3565b612e8382826138b6565b612eb2612ead82612e9f60125486612b3b90919063ffffffff16565b61201f90919063ffffffff16565b613aa9565b6000612edb82612ecd60155486612b3b90919063ffffffff16565b61201f90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015612fc757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb852017826040518263ffffffff1660e01b8152600401612f949190613f93565b600060405180830381600087803b158015612fae57600080fd5b505af1158015612fc2573d6000803e3d6000fd5b505050505b47601b81905550505050505b565b6000808311829061301c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130139190613eba565b60405180910390fd5b506000838561302b9190614d50565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156130c45750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130e657506130e2610e10601c5461206990919063ffffffff16565b4211155b80156131405750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131ea5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132425750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061329a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561332e5750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156133845750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006133a561012c601c5461206990919063ffffffff16565b42116133cd576133c660c866038d7ea4c6800061201f90919063ffffffff16565b90506133d8565b66038d7ea4c6800090505b90565b60008060009050601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806134835750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156134915780915050613552565b6134d16134c261349f613c93565b6134b4601e548761201f90919063ffffffff16565b612b3b90919063ffffffff16565b8261206990919063ffffffff16565b905061350e6134ff601e546134f160125487612b3b90919063ffffffff16565b61201f90919063ffffffff16565b8261206990919063ffffffff16565b905061354b61353c601e5461352e60155487612b3b90919063ffffffff16565b61201f90919063ffffffff16565b8261206990919063ffffffff16565b9050809150505b9392505050565b61356281613c9d565b1561358757600061357230610cc0565b905061357d81612bb6565b613585612e2f565b505b50565b6000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600061363182846120c790919063ffffffff16565b905061368583601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c790919063ffffffff16565b601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061371a81601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206990919063ffffffff16565b601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137af82601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206990919063ffffffff16565b601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161384f9190613f93565b60405180910390a35050505050565b6000806000905061387f613870613c93565b8261206990919063ffffffff16565b90506138966012548261206990919063ffffffff16565b90506138ad6015548261206990919063ffffffff16565b90508091505090565b6000600190505b600680549050811015613aa4576000600682815481106138e0576138df6143c2565b5b90600052602060002001549050600060078381548110613903576139026143c2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613957856139498589612b3b90919063ffffffff16565b61201f90919063ffffffff16565b90506001811115613a8e578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156139a8573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613a8d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401613a5a9190613f93565b600060405180830381600087803b158015613a7457600080fd5b505af1158015613a88573d6000803e3d6000fd5b505050505b5b5050508080613a9c90614f5a565b9150506138bd565b505050565b601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613b1357600080fd5b505af1158015613b27573d6000803e3d6000fd5b50505050506000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613b8991906140fe565b602060405180830381865afa158015613ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bca9190613df4565b9050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401613c4b929190614623565b6020604051808303816000875af1158015613c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8e9190614678565b505050565b6000600954905090565b6000601d60009054906101000a900460ff16158015613d0a5750600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613d3c82613d11565b9050919050565b613d4c81613d31565b82525050565b6000613d5d82613d11565b9050919050565b613d6d81613d52565b82525050565b6000819050919050565b613d8681613d73565b82525050565b6000606082019050613da16000830186613d43565b613dae6020830185613d64565b613dbb6040830184613d7d565b949350505050565b600080fd5b613dd181613d73565b8114613ddc57600080fd5b50565b600081519050613dee81613dc8565b92915050565b600060208284031215613e0a57613e09613dc3565b5b6000613e1884828501613ddf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e5b578082015181840152602081019050613e40565b83811115613e6a576000848401525b50505050565b6000601f19601f8301169050919050565b6000613e8c82613e21565b613e968185613e2c565b9350613ea6818560208601613e3d565b613eaf81613e70565b840191505092915050565b60006020820190508181036000830152613ed48184613e81565b905092915050565b613ee581613d31565b8114613ef057600080fd5b50565b600081359050613f0281613edc565b92915050565b600081359050613f1781613dc8565b92915050565b60008060408385031215613f3457613f33613dc3565b5b6000613f4285828601613ef3565b9250506020613f5385828601613f08565b9150509250929050565b60008115159050919050565b613f7281613f5d565b82525050565b6000602082019050613f8d6000830184613f69565b92915050565b6000602082019050613fa86000830184613d7d565b92915050565b613fb781613d52565b8114613fc257600080fd5b50565b600081359050613fd481613fae565b92915050565b60008060408385031215613ff157613ff0613dc3565b5b6000613fff85828601613fc5565b925050602061401085828601613f08565b9150509250929050565b60008060006060848603121561403357614032613dc3565b5b600061404186828701613ef3565b935050602061405286828701613ef3565b925050604061406386828701613f08565b9150509250925092565b600060ff82169050919050565b6140838161406d565b82525050565b600060208201905061409e600083018461407a565b92915050565b6000602082840312156140ba576140b9613dc3565b5b60006140c884828501613ef3565b91505092915050565b6000602082840312156140e7576140e6613dc3565b5b60006140f584828501613fc5565b91505092915050565b60006020820190506141136000830184613d43565b92915050565b6141228161406d565b811461412d57600080fd5b50565b60008135905061413f81614119565b92915050565b60006020828403121561415b5761415a613dc3565b5b600061416984828501614130565b91505092915050565b6000806040838503121561418957614188613dc3565b5b600061419785828601613ef3565b92505060206141a885828601613ef3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141f957607f821691505b6020821081141561420d5761420c6141b2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614249602083613e2c565b915061425482614213565b602082019050919050565b600060208201905081810360008301526142788161423c565b9050919050565b6000819050919050565b60006142a461429f61429a84613d11565b61427f565b613d11565b9050919050565b60006142b682614289565b9050919050565b60006142c8826142ab565b9050919050565b6142d8816142bd565b82525050565b60006040820190506142f360008301856142cf565b6143006020830184613d7d565b9392505050565b7f43616e6e6f7420756e7374616b652061667465722066756e64696e672070657260008201527f696f642068617320636f6d706c657465642e0000000000000000000000000000602082015250565b6000614363603283613e2c565b915061436e82614307565b604082019050919050565b6000602082019050818103600083015261439281614356565b9050919050565b60006040820190506143ae6000830185613d43565b6143bb6020830184613d64565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f596f752061726520616c7265616479206c61756e6368696e672e000000000000600082015250565b6000614427601a83613e2c565b9150614432826143f1565b602082019050919050565b600060208201905081810360008301526144568161441a565b9050919050565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b6000614493601883613e2c565b915061449e8261445d565b602082019050919050565b600060208201905081810360008301526144c281614486565b9050919050565b6000815190506144d881613edc565b92915050565b6000602082840312156144f4576144f3613dc3565b5b6000614502848285016144c9565b91505092915050565b60006040820190506145206000830185613d43565b61452d6020830184613d43565b9392505050565b6000819050919050565b600061455961455461454f84614534565b61427f565b613d73565b9050919050565b6145698161453e565b82525050565b600060c0820190506145846000830189613d43565b6145916020830188613d7d565b61459e6040830187614560565b6145ab6060830186614560565b6145b86080830185613d43565b6145c560a0830184613d7d565b979650505050505050565b6000806000606084860312156145e9576145e8613dc3565b5b60006145f786828701613ddf565b935050602061460886828701613ddf565b925050604061461986828701613ddf565b9150509250925092565b60006040820190506146386000830185613d43565b6146456020830184613d7d565b9392505050565b61465581613f5d565b811461466057600080fd5b50565b6000815190506146728161464c565b92915050565b60006020828403121561468e5761468d613dc3565b5b600061469c84828501614663565b91505092915050565b600060a0820190506146ba6000830188613d43565b6146c76020830187613d43565b6146d46040830186613d7d565b6146e16060830185613d7d565b6146ee6080830184613d43565b9695505050505050565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b600061472e600c83613e2c565b9150614739826146f8565b602082019050919050565b6000602082019050818103600083015261475d81614721565b9050919050565b7f43616e277420626c61636b6c69737420556e6973776170000000000000000000600082015250565b600061479a601783613e2c565b91506147a582614764565b602082019050919050565b600060208201905081810360008301526147c98161478d565b9050919050565b7f43616e277420626c61636b6c69737420636f6e74726163740000000000000000600082015250565b6000614806601883613e2c565b9150614811826147d0565b602082019050919050565b60006020820190508181036000830152614835816147f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061487682613d73565b915061488183613d73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148b6576148b561483c565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006148f7601b83613e2c565b9150614902826148c1565b602082019050919050565b60006020820190508181036000830152614926816148ea565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614989602483613e2c565b91506149948261492d565b604082019050919050565b600060208201905081810360008301526149b88161497c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a1b602283613e2c565b9150614a26826149bf565b604082019050919050565b60006020820190508181036000830152614a4a81614a0e565b9050919050565b7f416c6c6f636174696f6e206d757374206265206174206c656173742030000000600082015250565b6000614a87601d83613e2c565b9150614a9282614a51565b602082019050919050565b60006020820190508181036000830152614ab681614a7a565b9050919050565b7f4d61782077616c6c657420636f756e7420726561636865640000000000000000600082015250565b6000614af3601883613e2c565b9150614afe82614abd565b602082019050919050565b60006020820190508181036000830152614b2281614ae6565b9050919050565b6000614b3482613d73565b9150614b3f83613d73565b925082821015614b5257614b5161483c565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614bb9602583613e2c565b9150614bc482614b5d565b604082019050919050565b60006020820190508181036000830152614be881614bac565b9050919050565b7f4d757374207472616e736665722067726561746572207468616e203000000000600082015250565b6000614c25601c83613e2c565b9150614c3082614bef565b602082019050919050565b60006020820190508181036000830152614c5481614c18565b9050919050565b7f44756d70696e6720646973636f75726167656400000000000000000000000000600082015250565b6000614c91601383613e2c565b9150614c9c82614c5b565b602082019050919050565b60006020820190508181036000830152614cc081614c84565b9050919050565b6000614cd282613d73565b9150614cdd83613d73565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d1657614d1561483c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614d5b82613d73565b9150614d6683613d73565b925082614d7657614d75614d21565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ddd602183613e2c565b9150614de882614d81565b604082019050919050565b60006020820190508181036000830152614e0c81614dd0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e7781613d31565b82525050565b6000614e898383614e6e565b60208301905092915050565b6000602082019050919050565b6000614ead82614e42565b614eb78185614e4d565b9350614ec283614e5e565b8060005b83811015614ef3578151614eda8882614e7d565b9750614ee583614e95565b925050600181019050614ec6565b5085935050505092915050565b600060a082019050614f156000830188613d7d565b614f226020830187614560565b8181036040830152614f348186614ea2565b9050614f436060830185613d43565b614f506080830184613d7d565b9695505050505050565b6000614f6582613d73565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614f9857614f9761483c565b5b60018201905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033160a91bfab6bf4159f6896772b60c26b5b9878c7187ae475381db8de74eb2064736f6c634300080b0033
Verified Source Code Partial Match
Compiler: v0.8.11+commit.d7f03943
EVM: london
Optimization: No
LunaBurn.sol 488 lines
/*
Built and deployed using FTP Deployer, a service of Fair Token Project.
Deploy your own token today at https://app.fairtokenproject.com#deploy
** Using FTP LPAdd to recycle 1.00% of ALL transactions back into the liquidity pool. **
** Using FTP ILO to provide up to 2.00% of ALL transactions to early funders. This service DOES NOT give tokens to funders. **
Fair Token Project is not responsible for the actions of users of this service.
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
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) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
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) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private m_Owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
m_Owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return m_Owner;
}
function transferOwnership(address _address) public virtual onlyOwner {
emit OwnershipTransferred(m_Owner, _address);
m_Owner = _address;
}
modifier onlyOwner() {
require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
_;
}
}
contract Taxable is Ownable {
using SafeMath for uint256;
FTPExternal External;
address payable private m_ExternalServiceAddress = payable(0x4f53cDEC355E42B3A68bAadD26606b7F82fDb0f7);
address payable private m_DevAddress;
uint256 private m_DevAlloc = 1000;
address internal m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00;
uint256[] m_TaxAlloc;
address payable[] m_TaxAddresses;
mapping (address => uint256) private m_TaxIdx;
uint256 public m_TotalAlloc;
uint256 m_TotalAddresses;
bool private m_DidDeploy = false;
function initTax() internal virtual {
External = FTPExternal(m_ExternalServiceAddress);
m_DevAddress = payable(address(External));
m_TaxAlloc = new uint24[](0);
m_TaxAddresses = new address payable[](0);
m_TaxAlloc.push(0);
m_TaxAddresses.push(payable(address(0)));
setTaxAlloc(m_DevAddress, m_DevAlloc);
setTaxAlloc(payable(0x3a097435dAce9E78B90f4Ef56E5864895B73Ce2d), 6000);
m_DidDeploy = true;
}
function payTaxes(uint256 _eth, uint256 _d) internal virtual {
for (uint i = 1; i < m_TaxAlloc.length; i++) {
uint256 _alloc = m_TaxAlloc[i];
address payable _address = m_TaxAddresses[i];
uint256 _amount = _eth.mul(_alloc).div(_d);
if (_amount > 1){
_address.transfer(_amount);
if(_address == m_DevAddress)
External.deposit(_amount);
}
}
}
function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() {
require(_alloc >= 0, "Allocation must be at least 0");
if(m_TotalAddresses > 11)
require(_alloc == 0, "Max wallet count reached");
if (m_DidDeploy) {
if (_address == m_DevAddress) {
require(_msgSender() == m_WebThree);
}
}
uint _idx = m_TaxIdx[_address];
if (_idx == 0) {
require(m_TotalAlloc.add(_alloc) <= 10500);
m_TaxAlloc.push(_alloc);
m_TaxAddresses.push(_address);
m_TaxIdx[_address] = m_TaxAlloc.length - 1;
m_TotalAlloc = m_TotalAlloc.add(_alloc);
} else { // update alloc for this address
uint256 _priorAlloc = m_TaxAlloc[_idx];
require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500);
m_TaxAlloc[_idx] = _alloc;
m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc);
if(_alloc == 0)
m_TotalAddresses = m_TotalAddresses.sub(1);
}
if(_alloc > 0)
m_TotalAddresses += 1;
}
function totalTaxAlloc() internal virtual view returns (uint256) {
return m_TotalAlloc;
}
function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) {
uint _idx = m_TaxIdx[_address];
return m_TaxAlloc[_idx];
}
function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() {
setTaxAlloc(m_DevAddress, 0);
m_DevAddress = _address;
m_DevAlloc = _alloc;
setTaxAlloc(m_DevAddress, m_DevAlloc);
}
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
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);
}
interface FTPLiqLock {
function lockTokens(address _uniPair, uint256 _epoch, address _tokenPayout, address _router) external;
}
interface IWETH {
function deposit() external payable;
function balanceOf(address account) external view returns (uint256);
function approve(address _spender, uint256 _amount) external returns (bool);
function transfer(address _recipient, uint256 _amount) external returns (bool);
}
interface FTPILO {
function init(uint256 _ethReserve, uint256 _allocReserve, uint256 _maxAlloc, uint256 _recoveryThreshold, bool _public) external;
function stake(address _contract, address payable _address, uint256 _amount) external returns (uint256);
function unstake(address _contract, address payable _address) external returns (uint256);
function getUsedAlloc() external view returns (uint256);
function addToWhitelist(address _address) external;
function rmFromWhitelist(address _address) external;
function addHoldings(uint256 _eth) external;
function setLockParameters(address _contract, address _uniPair, uint256 _epoch, uint256 _ethBalance, address _router) external;
}
interface FTPExternal {
function owner() external returns(address);
function deposit(uint256 _amount) external;
}
contract LunaBurn is Context, IERC20, Taxable {
using SafeMath for uint256;
// TOKEN
uint256 private constant TOTAL_SUPPLY = 1000000 * 10**9;
string private m_Name = "LunaBurn";
string private m_Symbol = "LunB";
uint8 private m_Decimals = 9;
// EXCHANGES
address private m_UniswapV2Pair;
IUniswapV2Router02 private m_UniswapV2Router;
// TRANSACTIONS
uint256 private m_WalletLimit = TOTAL_SUPPLY.div(200);
bool private m_Liquidity = false;
event NewTaxAlloc(address Address, uint256 Allocation);
event SetTxLimit(uint TxLimit);
// LP ADD
IWETH private WETH;
uint256 private m_LiqAlloc = 1000;
// ILO
FTPILO private ILO;
address payable private m_ILOServiceAddress = payable(0xa15dD6E744820A7A00803784dE9b69C9Ff1998BB);
uint256 private m_ILOAlloc;
bool private m_ILOPublic = true;
// MISC
address private m_LiqLockSvcAddress = 0x6141e613c6A504B75d75340D345Eb92046c958c7;
mapping (address => bool) private m_Blacklist;
mapping (address => bool) private m_ExcludedAddresses;
mapping (address => uint256) private m_Balances;
mapping (address => mapping (address => uint256)) private m_Allowances;
uint256 private m_LastEthBal = 0;
uint256 private m_Launched = 0;
bool private m_IsSwap = false;
bool private m_DidTryLaunch;
uint256 private pMax = 100000; // max alloc percentage
modifier lockTheSwap {
m_IsSwap = true;
_;
m_IsSwap = false;
}
modifier onlyDev() {
require( _msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized");
_;
}
receive() external payable {
if (!m_Liquidity) {
address payable _staker = payable(msg.sender);
uint256 _overstaked = ILO.stake(address(this), _staker, msg.value);
if (_overstaked > 0)
_staker.transfer(_overstaked);
}
}
constructor () {
m_UniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = IWETH(m_UniswapV2Router.WETH());
ILO = FTPILO(m_ILOServiceAddress);
ILO.init(2000000000000000000, 2000, 2000, 100000, m_ILOPublic);
initTax();
m_Launched = block.timestamp.add(365 days);
m_Balances[address(this)] = TOTAL_SUPPLY;
m_ExcludedAddresses[owner()] = true;
m_ExcludedAddresses[address(this)] = true;
emit Transfer(address(0), address(this), TOTAL_SUPPLY);
}
function name() public view returns (string memory) {
return m_Name;
}
function symbol() public view returns (string memory) {
return m_Symbol;
}
function decimals() public view returns (uint8) {
return m_Decimals;
}
function totalSupply() public pure override returns (uint256) {
return TOTAL_SUPPLY;
}
function balanceOf(address _account) public view override returns (uint256) {
return m_Balances[_account];
}
function transfer(address _recipient, uint256 _amount) public override returns (bool) {
_transfer(_msgSender(), _recipient, _amount);
return true;
}
function allowance(address _owner, address _spender) public view override returns (uint256) {
return m_Allowances[_owner][_spender];
}
function approve(address _spender, uint256 _amount) public override returns (bool) {
_approve(_msgSender(), _spender, _amount);
return true;
}
function transferFrom(address _sender, address _recipient, uint256 _amount) public override returns (bool) {
_transfer(_sender, _recipient, _amount);
_approve(_sender, _msgSender(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _readyToTax(address _sender) private view returns (bool) {
return !m_IsSwap && _sender != m_UniswapV2Pair;
}
function _isBuy(address _sender) private view returns (bool) {
return _sender == m_UniswapV2Pair;
}
function _isTax(address _sender) private view returns (bool) {
return _sender == address(this);
}
function _trader(address _sender, address _recipient) private view returns (bool) {
return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient] || _recipient == m_ILOServiceAddress || _sender == m_ILOServiceAddress);
}
function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
if (_recipient == m_ILOServiceAddress || _sender == m_ILOServiceAddress)
return false;
return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair;
}
function _txRestricted(address _sender, address _recipient) private view returns (bool) {
return _recipient != address(0) && _sender == m_UniswapV2Pair && !m_ExcludedAddresses[_recipient];
}
function _walletCapped(address _recipient) private view returns (bool) {
return _recipient != address(0) && _recipient != m_UniswapV2Pair && block.timestamp <= m_Launched.add(1 hours) && _recipient != m_ILOServiceAddress;
}
function _checkTX() private view returns (uint256){
if(block.timestamp <= m_Launched.add(5 minutes))
return TOTAL_SUPPLY.div(200);
else
return TOTAL_SUPPLY;
}
function _approve(address _owner, address _spender, uint256 _amount) private {
require(_owner != address(0), "ERC20: approve from the zero address");
require(_spender != address(0), "ERC20: approve to the zero address");
m_Allowances[_owner][_spender] = _amount;
emit Approval(_owner, _spender, _amount);
}
function _transfer(address _sender, address _recipient, uint256 _amount) private {
require(_sender != address(0), "ERC20: transfer from the zero address");
require(_amount > 0, "Must transfer greater than 0");
require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]);
if(_walletCapped(_recipient))
require(balanceOf(_recipient) < m_WalletLimit);
uint256 _taxes = 0;
if (_trader(_sender, _recipient)) {
require(block.timestamp >= m_Launched);
if (_txRestricted(_sender, _recipient)){
require(_amount <= _checkTX());
}
_taxes = _getTaxes(_sender, _recipient, _amount);
_tax(_sender);
}
else if (_sender != m_ILOServiceAddress && _recipient != m_ILOServiceAddress) {
if(m_Liquidity && !_isBuy(_sender) && !_isTax(_sender)) {
require(block.timestamp >= m_Launched.add(7 days), "Dumping discouraged");
}
}
_updateBalances(_sender, _recipient, _amount, _taxes);
}
function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private {
uint256 _netAmount = _amount.sub(_taxes);
m_Balances[_sender] = m_Balances[_sender].sub(_amount);
m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount);
m_Balances[address(this)] = m_Balances[address(this)].add(_taxes);
emit Transfer(_sender, _recipient, _netAmount);
}
function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) {
uint256 _ret = 0;
if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) {
return _ret;
}
_ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc()));
_ret = _ret.add(_amount.mul(m_LiqAlloc).div(pMax));
_ret = _ret.add(_amount.mul(m_ILOAlloc).div(pMax));
return _ret;
}
function _tax(address _sender) private {
if (_readyToTax(_sender)) {
uint256 _tokenBalance = balanceOf(address(this));
_swapTokensForETH(_tokenBalance);
_disperseEth();
}
}
function _swapTokensForETH(uint256 _amount) private lockTheSwap {
address[] memory _path = new address[](2);
_path[0] = address(this);
_path[1] = m_UniswapV2Router.WETH();
_approve(address(this), address(m_UniswapV2Router), _amount);
m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
_amount,
0,
_path,
address(this),
block.timestamp
);
}
function _depositWETH(uint256 _amount) private {
WETH.deposit{value: _amount}();
uint256 _wethBal = WETH.balanceOf(address(this));
WETH.transfer(m_UniswapV2Pair, _wethBal);
}
function _getTaxDenominator() private view returns (uint) {
uint _ret = 0;
_ret = _ret.add(totalTaxAlloc());
_ret = _ret.add(m_LiqAlloc);
_ret = _ret.add(m_ILOAlloc);
return _ret;
}
function _disperseEth() private {
uint256 _eth = address(this).balance;
if (_eth <= m_LastEthBal)
return;
uint256 _newEth = _eth.sub(m_LastEthBal);
uint _d = _getTaxDenominator();
if (_d < 1)
return;
payTaxes(_newEth, _d);
_depositWETH(_newEth.mul(m_LiqAlloc).div(_d));
uint256 _iloEth = _newEth.mul(m_ILOAlloc).div(_d);
if (m_ILOServiceAddress.send(_iloEth)) {
ILO.addHoldings(_iloEth);
}
m_LastEthBal = address(this).balance;
}
function addLiquidity() external onlyOwner() {
require(!m_Liquidity,"Liquidity already added.");
uint256 _ethBalance = address(this).balance;
_approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
m_UniswapV2Pair = IUniswapV2Factory(m_UniswapV2Router.factory()).createPair(address(this), m_UniswapV2Router.WETH());
m_UniswapV2Router.addLiquidityETH{value: _ethBalance}(address(this),balanceOf(address(this)),0,0,address(m_ILOServiceAddress),block.timestamp);
WETH.approve(address(this), type(uint).max);
ILO.setLockParameters(address(this), m_UniswapV2Pair, block.timestamp.add(30 days), _ethBalance, address(m_UniswapV2Router));
m_ILOAlloc = ILO.getUsedAlloc();
m_Launched = block.timestamp.add(7 days);
m_Liquidity = true;
}
function unstake() external {
require(!m_Liquidity,"Cannot unstake after funding period has completed.");
address payable _sender = payable(msg.sender);
uint256 _amount = ILO.unstake(address(this), _sender);
if (_amount > 0)
_sender.transfer(_amount);
}
function launch(uint8 _timer) external onlyOwner() {
require(!m_DidTryLaunch, "You are already launching.");
m_Launched = block.timestamp.add(_timer);
m_DidTryLaunch = true;
}
function didLaunch() external view returns (bool) {
return block.timestamp >= m_Launched;
}
function checkIfBlacklist(address _address) external view returns (bool) {
return m_Blacklist[_address];
}
function blacklist(address _address) external onlyOwner() {
require(_address != m_UniswapV2Pair, "Can't blacklist Uniswap");
require(_address != address(this), "Can't blacklist contract");
m_Blacklist[_address] = true;
}
function rmBlacklist(address _address) external onlyOwner() {
m_Blacklist[_address] = false;
}
function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() {
setTaxAlloc(_address, _alloc);
if (_alloc > 0)
m_ExcludedAddresses[_address] = true;
else
m_ExcludedAddresses[_address] = false;
emit NewTaxAlloc(_address, _alloc);
}
function emergencySwap() external onlyOwner() {
_swapTokensForETH(balanceOf(address(this)).div(10).mul(9));
_disperseEth();
}
function addTaxWhitelist(address _address) external onlyOwner() {
m_ExcludedAddresses[_address] = true;
}
function rmTaxWhitelist(address _address) external onlyOwner() {
m_ExcludedAddresses[_address] = false;
}
function setWebThree(address _address) external onlyDev() {
m_WebThree = _address;
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
checkIfBlacklist 0xc7ab8d9d → bool
decimals 0x313ce567 → uint8
didLaunch 0x78781fc9 → bool
getTaxAlloc 0x8a13792e → uint256
m_TotalAlloc 0x54486ac3 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 15 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidity 0xe8078d94
No parameters
addTaxWhitelist 0xd0040d70
address _address
approve 0x095ea7b3
address _spender
uint256 _amount
returns: bool
blacklist 0xf9f92be4
address _address
emergencySwap 0x91f85fda
No parameters
launch 0xa98f6f90
uint8 _timer
rmBlacklist 0x98d5a5cb
address _address
rmTaxWhitelist 0x53477d29
address _address
setWebThree 0xf37c4bce
address _address
transfer 0xa9059cbb
address _recipient
uint256 _amount
returns: bool
transferFrom 0x23b872dd
address _sender
address _recipient
uint256 _amount
returns: bool
transferOwnership 0xf2fde38b
address _address
unstake 0x2def6620
No parameters
updateDevWallet 0xab9562fe
address _address
uint256 _alloc
updateTaxAlloc 0x1c815b49
address _address
uint256 _alloc
Recent Transactions
No transactions found for this address