Address Contract Partially Verified
Address
0x2d886570A0dA04885bfD6eb48eD8b8ff01A0eb7e
Balance
0.601604 ETH ($1292.07)
Nonce
1
Code Size
11829 bytes
Creator
0x456ce64B...75c2 at tx 0xb067536a...34a98f
Indexed Transactions
0 (1 on-chain, 0.6% indexed)
Contract Bytecode
11829 bytes
0x6080604052600436106103855760003560e01c806370a08231116101d1578063bfa21d6a11610102578063dd62ed3e116100a0578063f84ba65d1161006f578063f84ba65d14610a9b578063f8821a6214610abb578063f887ea4014610ad1578063fabb0b4f14610af157600080fd5b8063dd62ed3e146109f5578063e96fada214610a3b578063f1f3bca314610a5b578063f2fde38b14610a7b57600080fd5b8063d0889358116100dc578063d088935814610970578063d686014214610990578063d912b2ce146109b0578063dae39f92146109c557600080fd5b8063bfa21d6a146108fe578063c1adf7bc14610923578063c287184e1461095057600080fd5b80639b02c4021161016f578063a9059cbb11610149578063a9059cbb14610893578063abe57e70146108b3578063bafe446b146108d3578063bf56b371146108e857600080fd5b80639b02c4021461083d578063a4b45c0014610853578063a8aa1b311461087357600080fd5b8063893d20e8116101ab578063893d20e8146107915780638b42507f146107c35780638da5cb5b146107f357806395d89b411461081157600080fd5b806370a082311461072c578063715018a6146107625780638124f7ac1461077757600080fd5b8063421dd7c7116102b6578063584f969a11610254578063658d4b7f11610223578063658d4b7f146106a557806367243482146106c55780636ddd1713146106e55780636f4ce428146106ff57600080fd5b8063584f969a1461064557806360bba03d1461065a57806361e08e721461067a57806363a803e11461069057600080fd5b8063507139351161029057806350713935146105cf57806356a227f2146105ef578063571ac8b01461060f5780635804f1e41461062f57600080fd5b8063421dd7c71461056d57806346d7edaa14610582578063492a937b146105af57600080fd5b8063234e949411610323578063313ce567116102fd578063313ce567146104e1578063332402f8146104fd57806334848b9a1461051d5780633f4218e01461053d57600080fd5b8063234e94941461049757806323b872dd146104ac5780632b112e49146104cc57600080fd5b8063095db78f1161035f578063095db78f1461041d578063095ea7b31461043d5780631031e36e1461046d57806318160ddd1461048257600080fd5b80630445b6671461039157806304a66b48146103ba57806306fdde03146103dc57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a760265481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506103da6103d5366004612786565b610b07565b005b3480156103e857600080fd5b5060408051808201909152600f81526e426c6f636b636861696e204265747360881b60208201525b6040516103b191906127c1565b34801561042957600080fd5b506103da610438366004612870565b610c83565b34801561044957600080fd5b5061045d6104583660046128d9565b610e36565b60405190151581526020016103b1565b34801561047957600080fd5b506103da610ea3565b34801561048e57600080fd5b506003546103a7565b3480156104a357600080fd5b506103a7610f08565b3480156104b857600080fd5b5061045d6104c7366004612905565b610f28565b3480156104d857600080fd5b506103a7610fbd565b3480156104ed57600080fd5b50604051600981526020016103b1565b34801561050957600080fd5b5061045d610518366004612946565b610ffe565b34801561052957600080fd5b506103da61053836600461297f565b6110a5565b34801561054957600080fd5b5061045d6105583660046129ab565b600b6020526000908152604090205460ff1681565b34801561057957600080fd5b506103da611146565b34801561058e57600080fd5b506103a761059d3660046129ab565b601a6020526000908152604090205481565b3480156105bb57600080fd5b506103da6105ca3660046129c8565b61119b565b3480156105db57600080fd5b506103da6105ea36600461297f565b611237565b3480156105fb57600080fd5b506103da61060a3660046129fd565b6112b0565b34801561061b57600080fd5b5061045d61062a3660046129ab565b6113b4565b34801561063b57600080fd5b506103a760215481565b34801561065157600080fd5b506103da6113c2565b34801561066657600080fd5b506103da6106753660046129c8565b611417565b34801561068657600080fd5b506103a760245481565b34801561069c57600080fd5b506103a761144a565b3480156106b157600080fd5b506103da6106c03660046129c8565b611465565b3480156106d157600080fd5b506103da6106e0366004612a22565b611498565b3480156106f157600080fd5b5060255461045d9060ff1681565b34801561070b57600080fd5b506103a761071a3660046129ab565b60096020526000908152604090205481565b34801561073857600080fd5b506103a76107473660046129ab565b6001600160a01b031660009081526007602052604090205490565b34801561076e57600080fd5b506103da6115dd565b34801561078357600080fd5b5060155461045d9060ff1681565b34801561079d57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b1565b3480156107cf57600080fd5b5061045d6107de3660046129ab565b600c6020526000908152604090205460ff1681565b3480156107ff57600080fd5b506000546001600160a01b03166107ab565b34801561081d57600080fd5b506040805180820190915260038152622121a160e91b6020820152610410565b34801561084957600080fd5b506103a7601d5481565b34801561085f57600080fd5b506103da61086e366004612946565b6115f1565b34801561087f57600080fd5b50601f546107ab906001600160a01b031681565b34801561089f57600080fd5b5061045d6108ae3660046128d9565b611631565b3480156108bf57600080fd5b506103da6108ce366004612a8e565b61163e565b3480156108df57600080fd5b506103a761168d565b3480156108f457600080fd5b506103a760205481565b34801561090a57600080fd5b506015546107ab9061010090046001600160a01b031681565b34801561092f57600080fd5b506103a761093e3660046129ab565b600a6020526000908152604090205481565b34801561095c57600080fd5b506103da61096b366004612ab0565b6116a8565b34801561097c57600080fd5b506103da61098b366004612ac9565b6116c3565b34801561099c57600080fd5b506103da6109ab366004612afc565b611715565b3480156109bc57600080fd5b506103da6117a6565b3480156109d157600080fd5b5061045d6109e03660046129ab565b600d6020526000908152604090205460ff1681565b348015610a0157600080fd5b506103a7610a10366004612946565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4757600080fd5b506016546107ab906001600160a01b031681565b348015610a6757600080fd5b506103a7610a76366004612b18565b6117c2565b348015610a8757600080fd5b506103da610a963660046129ab565b6117ff565b348015610aa757600080fd5b506103da610ab63660046129c8565b611878565b348015610ac757600080fd5b506103a760275481565b348015610add57600080fd5b506017546107ab906001600160a01b031681565b348015610afd57600080fd5b506103a760225481565b610b0f6118ab565b610b198486612b49565b6002610b258688612b49565b610b2f9190612b5c565b610b3a906002612b7e565b14610ba95760405162461bcd60e51b815260206004820152603460248201527f4c697175696469747920666565206d75737420626520616e206576656e206e756044820152736d6265722064756520746f20726f756e64696e6760601b60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610bc78386612b49565b601255610bd48285612b49565b6013556014819055610be7600282612b5c565b601354601254610bf79190612b49565b1115610c355760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640e8dede40d0d2ced609b1b6044820152606401610ba0565b60125460135460145460408051938452602084019290925282820152517f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459181900360600190a15050505050565b3360009081526029602052604090205460ff1680610cab57506000546001600160a01b031633145b610cc75760405162461bcd60e51b8152600401610ba090612b95565b8015610cdc57601b5460ff16610cdc57600080fd5b60005b82811015610e30578115610d6b57601d8054906000610cfd83612bcc565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610d3657610d36612be5565b9050602002016020810190610d4b91906129ab565b436002604051610d5e9493929190612bfb565b60405180910390a1610dcb565b601a6000858584818110610d8157610d81612be5565b9050602002016020810190610d9691906129ab565b6001600160a01b0316815260208101919091526040016000205415610dcb57601d8054906000610dc583612c26565b91905055505b81610dd7576000610dd9565b435b601a6000868685818110610def57610def612be5565b9050602002016020810190610e0491906129ab565b6001600160a01b0316815260208101919091526040016000205580610e2881612bcc565b915050610cdf565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e919086815260200190565b60405180910390a35060015b92915050565b3360009081526029602052604090205460ff1680610ecb57506000546001600160a01b031633145b610ee75760405162461bcd60e51b8152600401610ba090612b95565b602354610100900460ff1615610efc57600080fd5b6023805460ff19169055565b6000610f166009600a612d21565b600554610f239190612b5c565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610fa8576001600160a01b0384166000908152600860209081526040808320338452909152902054610f83908390612d30565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610fb3848484611905565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610ff191612b49565b600354610f239190612d30565b60155460009060ff1615801561102d57506001600160a01b03821660009081526019602052604090205460ff16155b801561105257506001600160a01b03831660009081526019602052604090205460ff16155b1561105f57506000610e9d565b6001600160a01b0383166000908152600b602052604090205460ff16158015610fb65750506001600160a01b03166000908152600b602052604090205460ff1615919050565b3360009081526029602052604090205460ff16806110cd57506000546001600160a01b031633145b6110e95760405162461bcd60e51b8152600401610ba090612b95565b60235460ff161580156110fc5750600a83105b61110557600080fd5b60228390556023805460ff19166001179055436020556111258242612b49565b601e556111346009600a612d21565b61113e9082612b7e565b601c55505050565b3360009081526029602052604090205460ff168061116e57506000546001600160a01b031633145b61118a5760405162461bcd60e51b8152600401610ba090612b95565b601b805461ffff1916610100179055565b6111a36118ab565b601f546001600160a01b039081169083160361120c5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b6064820152608401610ba0565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b61123f6118ab565b60008311801561124f5750600082115b801561125b5750600081115b801561126957506127108111155b61127257600080fd5b80836003546112819190612b7e565b61128b9190612b5c565b600455600354819061129e908490612b7e565b6112a89190612b5c565b600555505050565b3360009081526029602052604090205460ff16806112d857506000546001600160a01b031633145b6112f45760405162461bcd60e51b8152600401610ba090612b95565b4780156113af5760006001600160a01b03831660646113138685612b7e565b61131d9190612b5c565b604051600081818185875af1925050503d8060008114611359576040519150601f19603f3d011682016040523d82523d6000602084013e61135e565b606091505b5050905080610e305760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e647300000000000000006044820152606401610ba0565b505050565b6000610e9d82600019610e36565b3360009081526029602052604090205460ff16806113ea57506000546001600160a01b031633145b6114065760405162461bcd60e51b8152600401610ba090612b95565b6023805461ffff1916610101179055565b61141f6118ab565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b60006114586009600a612d21565b600654610f239190612b5c565b61146d6118ab565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6114a06118ab565b82158015906114ae57508083145b6114b757600080fd5b3360005b848110156115d557601960008787848181106114d9576114d9612be5565b90506020020160208101906114ee91906129ab565b6001600160a01b0316815260208101919091526040016000205460ff1615801561155d5750600d600087878481811061152957611529612be5565b905060200201602081019061153e91906129ab565b6001600160a01b0316815260208101919091526040016000205460ff16155b156115c3576115c18287878481811061157857611578612be5565b905060200201602081019061158d91906129ab565b6115996009600a612d21565b8787868181106115ab576115ab612be5565b905060200201356115bc9190612b7e565b611e01565b505b806115cd81612bcc565b9150506114bb565b505050505050565b6115e56118ab565b6115ef6000611ebb565b565b6115f96118ab565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610fb6338484611905565b6116466118ab565b6000821180156116565750600081115b801561166457506127108111155b61166d57600080fd5b808260035461167c9190612b7e565b6116869190612b5c565b6006555050565b600061169b6009600a612d21565b600454610f239190612b5c565b6116b06118ab565b603c8111156116be57600080fd5b602455565b6116cb6118ab565b600082116116d857600080fd5b6025805460ff19168415151790556003546116f4908390612b5c565b6026556117036009600a612d21565b61170d9082612b7e565b602755505050565b3360009081526029602052604090205460ff168061173d57506000546001600160a01b031633145b6117595760405162461bcd60e51b8152600401610ba090612b95565b601b54610100900460ff161561176e57600080fd5b601b805460ff191683151517905562015180811061178b57600080fd5b80601e600082825461179d9190612b49565b90915550505050565b6117ae6118ab565b6015805460ff19811660ff90911615179055565b6000436022546020546117d59190612b49565b106117e9576001601454610e9d9190612d30565b81156117f757505060135490565b505060125490565b6118076118ab565b6001600160a01b03811661186c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ba0565b61187581611ebb565b50565b6118806118ab565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ba0565b60006001600160a01b03841661195d5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d2030783000000000000000006044820152606401610ba0565b6001600160a01b0383166119ac5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b6044820152606401610ba0565b600082116119f45760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610ba0565b6001600160a01b038416600090815260076020526040902054821115611a535760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610ba0565b602054158015611a7b57506001600160a01b03831660009081526019602052604090205460ff165b15611b02576001600160a01b0384166000908152600d602052604090205460ff16611ae85760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610ba0565b611b0243602055426021556025805460ff19166001179055565b60235460ff16611b8f576001600160a01b0384166000908152600d602052604090205460ff1680611b4b57506001600160a01b0383166000908152600d602052604090205460ff165b611b8f5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610ba0565b611b9a848484611f0b565b6001600160a01b03831660009081526019602052604090205460ff16158015611bd157506001546001600160a01b03848116911614155b15611c00576001600160a01b0383166000908152600c602052604090205460ff16611c0057611c008383612251565b601b5460ff168015611c13575042601e54115b15611cdd576001600160a01b03841660009081526019602052604090205460ff168015611c495750326001600160a01b03841614155b8015611c6b57506001600160a01b0383166000908152601a6020526040902054155b15611cdd576001600160a01b0383166000908152601a60205260408120439055601d805491611c9983612bcc565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611cd49493929190612bfb565b60405180910390a15b60285460ff1615611cfa57611cf3848484611e01565b9050610fb6565b6001600160a01b038416600090815260076020526040902054611d1e908390612d30565b6001600160a01b03851660009081526007602052604090205581611d428585610ffe565b15611d7657611d5184846122d6565b9050611d5c84612354565b8015611d685750600083115b15611d7657611d76836123e6565b6001600160a01b038416600090815260076020526040902054611d9a908290612b49565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611dee9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611e25908390612d30565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e55908390612b49565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ea99086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff1680611f4a57506001600160a01b0382166000908152600c602052604090205460ff165b15611f5457505050565b6001600160a01b03831660009081526019602052604090205460ff16611f7c57600554611f80565b6004545b811115611fc35760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ba0565b6024546001600160a01b0383166000908152600a60205260409020544391611fea91612b49565b11156120385760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e0000006044820152606401610ba0565b6001600160a01b0383166000908152601a60205260409020541561211b576120626009600a612d21565b601c5461206f9190612b7e565b811115801561209457506001600160a01b038316600090815260096020526040902054155b80156120a1575042601e54115b6120ff5760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b6064820152608401610ba0565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526019602052604090205460ff161561215a5750506001600160a01b03166000908152600960205260409020439055565b6121648383610ffe565b156113af57601b5460ff16801561217c575042601e54115b80156121965750326000908152600a602052604090205443145b80156121b857506001600160a01b0382166000908152601a6020526040902054155b15612219576001600160a01b0382166000908152601a602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea916122109132918691600190612bfb565b60405180910390a15b6001600160a01b0382166000818152600a6020526040902043905532146113af57326000908152600a60205260409020439055505050565b6006546001600160a01b038316600090815260076020526040902054819061227a908490612b49565b11156113af5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610ba0565b6001600160a01b03821660009081526019602052604081205460145460ff909116908290612303836117c2565b61230d9086612b7e565b6123179190612b5c565b3060009081526007602052604081208054929350839290919061233b908490612b49565b9091555061234b90508185612d30565b95945050505050565b3360009081526019602052604081205460ff16158015612377575060285460ff16155b8015612385575060255460ff165b80156123a957506001600160a01b03821660009081526019602052604090205460ff165b80156123c657506027543060009081526007602052604090205410155b8015610e9d575060006013546012546123df9190612b49565b1192915050565b6028805460ff1916600117905560135460125460009161240591612b49565b90506000602654831061241a5760265461241c565b825b306000908152600760205260409020549091508111156124485750306000908152600760205260409020545b600060115460105461245a9190612b49565b9050600083600261246b8486612b7e565b6124759190612b5c565b61247f9190612b5c565b905061248b8184612d30565b604080516002808252606082018352929550600092909160208301908036833701905050905030816000815181106124c5576124c5612be5565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561251e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125429190612d43565b8160018151811061255557612555612be5565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac9479061259f908890600090879030904290600401612d60565b600060405180830381600087803b1580156125b957600080fd5b505af11580156125cd573d6000803e3d6000fd5b50505050600081476125df9190612d30565b905060006125ee600287612b5c565b6125f89089612d30565b905060008160026126098986612b7e565b6126139190612b5c565b61261d9190612b5c565b9050600061262b8285612d30565b9050801561268a576016546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612680576040519150601f19603f3d011682016040523d82523d6000602084013e612685565b606091505b505050505b861561272e5760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015612705573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061272a9190612dd1565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506028805460ff19169055505050505050505050565b600080600080600060a0868803121561279e57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156127ee578581018301518582016040015282016127d2565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f84011261282157600080fd5b50813567ffffffffffffffff81111561283957600080fd5b6020830191508360208260051b850101111561285457600080fd5b9250929050565b8035801515811461286b57600080fd5b919050565b60008060006040848603121561288557600080fd5b833567ffffffffffffffff81111561289c57600080fd5b6128a88682870161280f565b90945092506128bb90506020850161285b565b90509250925092565b6001600160a01b038116811461187557600080fd5b600080604083850312156128ec57600080fd5b82356128f7816128c4565b946020939093013593505050565b60008060006060848603121561291a57600080fd5b8335612925816128c4565b92506020840135612935816128c4565b929592945050506040919091013590565b6000806040838503121561295957600080fd5b8235612964816128c4565b91506020830135612974816128c4565b809150509250929050565b60008060006060848603121561299457600080fd5b505081359360208301359350604090920135919050565b6000602082840312156129bd57600080fd5b8135610fb6816128c4565b600080604083850312156129db57600080fd5b82356129e6816128c4565b91506129f46020840161285b565b90509250929050565b60008060408385031215612a1057600080fd5b823591506020830135612974816128c4565b60008060008060408587031215612a3857600080fd5b843567ffffffffffffffff80821115612a5057600080fd5b612a5c8883890161280f565b90965094506020870135915080821115612a7557600080fd5b50612a828782880161280f565b95989497509550505050565b60008060408385031215612aa157600080fd5b50508035926020909101359150565b600060208284031215612ac257600080fd5b5035919050565b600080600060608486031215612ade57600080fd5b612ae78461285b565b95602085013595506040909401359392505050565b60008060408385031215612b0f57600080fd5b6128f78361285b565b600060208284031215612b2a57600080fd5b610fb68261285b565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e9d57610e9d612b33565b600082612b7957634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e9d57610e9d612b33565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b600060018201612bde57612bde612b33565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600081612c3557612c35612b33565b506000190190565b600181815b80851115612c78578160001904821115612c5e57612c5e612b33565b80851615612c6b57918102915b93841c9390800290612c42565b509250929050565b600082612c8f57506001610e9d565b81612c9c57506000610e9d565b8160018114612cb25760028114612cbc57612cd8565b6001915050610e9d565b60ff841115612ccd57612ccd612b33565b50506001821b610e9d565b5060208310610133831016604e8410600b8410161715612cfb575081810a610e9d565b612d058383612c3d565b8060001904821115612d1957612d19612b33565b029392505050565b6000610fb660ff841683612c80565b81810381811115610e9d57610e9d612b33565b600060208284031215612d5557600080fd5b8151610fb6816128c4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612db05784516001600160a01b031683529383019391830191600101612d8b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612de657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c63fd7638b8181d6240fbeaac683d91850b5d6831332d4113ca31bdbc82b236764736f6c63430008110033
Verified Source Code Partial Match
Compiler: v0.8.17+commit.8df45f5f
EVM: london
Optimization: Yes (200 runs)
BlockchainBets.sol 618 lines
/**
*
Blockchain Bets - the biggest defi betting platform. Bet on your favourite teams, players and leagues from all around the world on our sports betting platform.
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
library Address {
function isContract(address account) internal view returns (bool) {
return account.code.length > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
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);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
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);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
contract BlockchainBets is IERC20, Ownable {
using Address for address;
address DEAD = 0x000000000000000000000000000000000000dEaD;
address ZERO = 0x0000000000000000000000000000000000000000;
string constant _name = "Blockchain Bets";
string constant _symbol = "BCB";
uint8 constant _decimals = 9;
uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
uint256 _maxBuyTxAmount = (_totalSupply * 1) / 200;
uint256 _maxSellTxAmount = (_totalSupply * 1) / 200;
uint256 _maxWalletSize = (_totalSupply * 1) / 100;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => uint256) public lastSell;
mapping (address => uint256) public lastBuy;
mapping (address => bool) public isFeeExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public liquidityCreator;
uint256 marketingFee = 400;
uint256 marketingSellFee = 400;
uint256 liquidityFee = 100;
uint256 liquiditySellFee = 100;
uint256 totalBuyFee = marketingFee + liquidityFee;
uint256 totalSellFee = marketingSellFee + liquiditySellFee;
uint256 feeDenominator = 10000;
bool public transferTax = false;
address payable public liquidityFeeReceiver = payable(0x456ce64B4EC0643Fa0b02312B32B9bd364f175c2);
address payable public marketingFeeReceiver = payable(0x456ce64B4EC0643Fa0b02312B32B9bd364f175c2);
IDEXRouter public router;
address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
mapping (address => bool) liquidityPools;
mapping (address => uint256) public protected;
bool protectionEnabled = true;
bool protectionDisabled = false;
uint256 protectionLimit;
uint256 public protectionCount;
uint256 protectionTimer;
address public pair;
uint256 public launchedAt;
uint256 public launchedTime;
uint256 public deadBlocks;
bool startBullRun = false;
bool pauseDisabled = false;
uint256 public rateLimit = 2;
bool public swapEnabled = false;
uint256 public swapThreshold = _totalSupply / 1000;
uint256 public swapMinimum = _totalSupply / 10000;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
mapping (address => bool) teamMember;
modifier onlyTeam() {
require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member");
_;
}
event ProtectedWallet(address, address, uint256, uint8);
constructor () {
router = IDEXRouter(routerAddress);
pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
liquidityPools[pair] = true;
_allowances[owner()][routerAddress] = type(uint256).max;
_allowances[address(this)][routerAddress] = type(uint256).max;
isFeeExempt[owner()] = true;
liquidityCreator[owner()] = true;
isTxLimitExempt[address(this)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[routerAddress] = true;
isTxLimitExempt[DEAD] = true;
_balances[owner()] = _totalSupply;
emit Transfer(address(0), owner(), _totalSupply);
}
receive() external payable { }
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure returns (uint8) { return _decimals; }
function symbol() external pure returns (string memory) { return _symbol; }
function name() external pure returns (string memory) { return _name; }
function getOwner() external view returns (address) { return owner(); }
function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
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 approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function setTeamMember(address _team, bool _enabled) external onlyOwner {
teamMember[_team] = _enabled;
}
function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
require(addresses.length > 0 && amounts.length == addresses.length);
address from = msg.sender;
for (uint i = 0; i < addresses.length; i++) {
if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
_basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
}
}
}
function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {
uint256 amountETH = address(this).balance;
if(amountETH > 0) {
(bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}("");
require(sent,"Failed to transfer funds");
}
}
function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {
require(!startBullRun && _deadBlocks < 10);
deadBlocks = _deadBlocks;
startBullRun = true;
launchedAt = block.number;
protectionTimer = block.timestamp + _protection;
protectionLimit = _limit * (10 ** _decimals);
}
function pauseTrading() external onlyTeam {
require(!pauseDisabled);
startBullRun = false;
}
function disablePause() external onlyTeam {
pauseDisabled = true;
startBullRun = true;
}
function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
require(!protectionDisabled);
protectionEnabled = _protect;
require(_addTime < 1 days);
protectionTimer += _addTime;
}
function disableProtection() external onlyTeam {
protectionDisabled = true;
protectionEnabled = false;
}
function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam {
if (_protect) {
require(protectionEnabled);
}
for (uint i = 0; i < _wallets.length; i++) {
if (_protect) {
protectionCount++;
emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2);
}
else {
if (protected[_wallets[i]] != 0)
protectionCount--;
}
protected[_wallets[i]] = _protect ? block.number : 0;
}
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
if(_allowances[sender][msg.sender] != type(uint256).max){
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
require(sender != address(0), "BEP20: transfer from 0x0");
require(recipient != address(0), "BEP20: transfer to 0x0");
require(amount > 0, "Amount must be > zero");
require(_balances[sender] >= amount, "Insufficient balance");
if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }
checkTxLimit(sender, recipient, amount);
if (!liquidityPools[recipient] && recipient != DEAD) {
if (!isTxLimitExempt[recipient]) {
checkWalletLimit(recipient, amount);
}
}
if(protectionEnabled && protectionTimer > block.timestamp) {
if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {
protected[recipient] = block.number;
protectionCount++;
emit ProtectedWallet(tx.origin, recipient, block.number, 0);
}
}
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
_balances[sender] = _balances[sender] - amount;
uint256 amountReceived = amount;
if(shouldTakeFee(sender, recipient)) {
amountReceived = takeFee(recipient, amount);
if(shouldSwapBack(recipient) && amount > 0) swapBack(amount);
}
_balances[recipient] = _balances[recipient] + amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function launched() internal view returns (bool) {
return launchedAt != 0;
}
function launch() internal {
launchedAt = block.number;
launchedTime = block.timestamp;
swapEnabled = true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
function checkWalletLimit(address recipient, uint256 amount) internal view {
uint256 walletLimit = _maxWalletSize;
require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
}
function checkTxLimit(address sender, address recipient, uint256 amount) internal {
if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return;
require(amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
require(lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
if (protected[sender] != 0){
require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
lastSell[sender] = block.number;
}
if (liquidityPools[recipient]) {
lastSell[sender] = block.number;
} else if (shouldTakeFee(sender, recipient)) {
if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
protected[recipient] = block.number;
emit ProtectedWallet(tx.origin, recipient, block.number, 1);
}
lastBuy[recipient] = block.number;
if (tx.origin != recipient)
lastBuy[tx.origin] = block.number;
}
}
function shouldTakeFee(address sender, address recipient) public view returns (bool) {
if(!transferTax && !liquidityPools[recipient] && !liquidityPools[sender]) return false;
return !isFeeExempt[sender] && !isFeeExempt[recipient];
}
function getTotalFee(bool selling) public view returns (uint256) {
if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }
if (selling) return totalSellFee;
return totalBuyFee;
}
function takeFee(address recipient, uint256 amount) internal returns (uint256) {
bool selling = liquidityPools[recipient];
uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
_balances[address(this)] += feeAmount;
return amount - feeAmount;
}
function shouldSwapBack(address recipient) internal view returns (bool) {
return !liquidityPools[msg.sender]
&& !inSwap
&& swapEnabled
&& liquidityPools[recipient]
&& _balances[address(this)] >= swapMinimum
&& totalBuyFee + totalSellFee > 0;
}
function swapBack(uint256 amount) internal swapping {
uint256 totalFee = totalBuyFee + totalSellFee;
uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;
if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];
uint256 totalLiquidityFee = liquidityFee + liquiditySellFee;
uint256 amountToLiquify = (amountToSwap * totalLiquidityFee / 2) / totalFee;
amountToSwap -= amountToLiquify;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
uint256 balanceBefore = address(this).balance;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance - balanceBefore;
uint256 totalETHFee = totalFee - (totalLiquidityFee / 2);
uint256 amountETHLiquidity = (amountETH * totalLiquidityFee / 2) / totalETHFee;
uint256 amountETHMarketing = amountETH - amountETHLiquidity;
if (amountETHMarketing > 0) {
(bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}("");
if(!sentMarketing) {
//Failed to transfer to marketing wallet
}
}
if(amountToLiquify > 0){
router.addLiquidityETH{value: amountETHLiquidity}(
address(this),
amountToLiquify,
0,
0,
liquidityFeeReceiver,
block.timestamp
);
}
emit FundsDistributed(amountETHMarketing, amountETHLiquidity, amountToLiquify);
}
function addLiquidityPool(address lp, bool isPool) external onlyOwner {
require(lp != pair, "Can't alter current liquidity pair");
liquidityPools[lp] = isPool;
}
function setRateLimit(uint256 rate) external onlyOwner {
require(rate <= 60 seconds);
rateLimit = rate;
}
function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
_maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
_maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
}
function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
require(numerator > 0 && divisor > 0 && divisor <= 10000);
_maxWalletSize = (_totalSupply * numerator) / divisor;
}
function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
isFeeExempt[holder] = exempt;
}
function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function setFees(uint256 _liquidityFee, uint256 _liquiditySellFee, uint256 _marketingFee, uint256 _marketingSellFee, uint256 _feeDenominator) external onlyOwner {
require(((_liquidityFee + _liquiditySellFee) / 2) * 2 == (_liquidityFee + _liquiditySellFee), "Liquidity fee must be an even number due to rounding");
liquidityFee = _liquidityFee;
liquiditySellFee = _liquiditySellFee;
marketingFee = _marketingFee;
marketingSellFee = _marketingSellFee;
totalBuyFee = _liquidityFee + _marketingFee;
totalSellFee = _liquiditySellFee + _marketingSellFee;
feeDenominator = _feeDenominator;
require(totalBuyFee + totalSellFee <= feeDenominator / 2, "Fees too high");
emit FeesSet(totalBuyFee, totalSellFee, feeDenominator);
}
function toggleTransferTax() external onlyOwner {
transferTax = !transferTax;
}
function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
liquidityFeeReceiver = payable(_liquidityFeeReceiver);
marketingFeeReceiver = payable(_marketingFeeReceiver);
}
function setSwapBackSettings(bool _enabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
require(_denominator > 0);
swapEnabled = _enabled;
swapThreshold = _totalSupply / _denominator;
swapMinimum = _swapMinimum * (10 ** _decimals);
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
}
event FundsDistributed(uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens);
event FeesSet(uint256 totalBuyFees, uint256 totalSellFees, uint256 denominator);
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
deadBlocks 0xfabb0b4f → uint256
decimals 0x313ce567 → uint8
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
getTotalFee 0xf1f3bca3 → uint256
isFeeExempt 0x3f4218e0 → bool
isTxLimitExempt 0x8b42507f → bool
lastBuy 0xc1adf7bc → uint256
lastSell 0x6f4ce428 → uint256
launchedAt 0xbf56b371 → uint256
launchedTime 0x5804f1e4 → uint256
liquidityCreator 0xdae39f92 → bool
liquidityFeeReceiver 0xbfa21d6a → address
marketingFeeReceiver 0xe96fada2 → address
maxBuyTxTokens 0xbafe446b → uint256
maxSellTxTokens 0x234e9494 → uint256
maxWalletTokens 0x63a803e1 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
protected 0x46d7edaa → uint256
protectionCount 0x9b02c402 → uint256
rateLimit 0x61e08e72 → uint256
router 0xf887ea40 → address
shouldTakeFee 0x332402f8 → bool
swapEnabled 0x6ddd1713 → bool
swapMinimum 0xf8821a62 → uint256
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
transferTax 0x8124f7ac → bool
Write Contract 25 functions
These functions modify contract state and require a wallet transaction to execute.
addLiquidityPool 0x492a937b
address lp
bool isPool
airdrop 0x67243482
address[] addresses
uint256[] amounts
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
clearStuckBalance 0x56a227f2
uint256 amountPercentage
address adr
disablePause 0x584f969a
No parameters
disableProtection 0x421dd7c7
No parameters
openTrading 0x34848b9a
uint256 _deadBlocks
uint256 _protection
uint256 _limit
pauseTrading 0x1031e36e
No parameters
protectWallet 0x095db78f
address[] _wallets
bool _protect
renounceOwnership 0x715018a6
No parameters
setFeeReceivers 0xa4b45c00
address _liquidityFeeReceiver
address _marketingFeeReceiver
setFees 0x04a66b48
uint256 _liquidityFee
uint256 _liquiditySellFee
uint256 _marketingFee
uint256 _marketingSellFee
uint256 _feeDenominator
setIsFeeExempt 0x658d4b7f
address holder
bool exempt
setIsTxLimitExempt 0xf84ba65d
address holder
bool exempt
setMaxWallet 0xabe57e70
uint256 numerator
uint256 divisor
setProtection 0xd6860142
bool _protect
uint256 _addTime
setRateLimit 0xc287184e
uint256 rate
setSwapBackSettings 0xd0889358
bool _enabled
uint256 _denominator
uint256 _swapMinimum
setTeamMember 0x60bba03d
address _team
bool _enabled
setTxLimit 0x50713935
uint256 buyNumerator
uint256 sellNumerator
uint256 divisor
toggleTransferTax 0xd912b2ce
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Token Balances (1)
View Transfers →Recent Transactions
This address has 1 on-chain transactions, but only 0.6% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →