Address Contract Partially Verified
Address
0x56336F8Fe7fd6937CB63F89DB90338b4c7Fe491b
Balance
0 ETH
Nonce
1
Code Size
6339 bytes
Creator
0x9778152C...b625 at tx 0xec024c02...101988
Indexed Transactions
0 (1 on-chain, 1.2% indexed)
Contract Bytecode
6339 bytes
0x60806040526004361061025c5760003560e01c80638da5cb5b11610144578063c25fe1a4116100b6578063e7f6edbd1161007a578063e7f6edbd14610aa9578063eaf214ea14610abe578063edf26d9b14610ae8578063f2fde38b14610b12578063fa93f88314610b45578063faff660e14610b6f5761025c565b8063c25fe1a4146109f0578063ccb3c32f14610a1a578063ce1f561c14610a44578063d7bd8d6c14610a59578063dd62ed3e14610a6e5761025c565b8063a610fe9b11610108578063a610fe9b1461091f578063a9059cbb14610934578063ac8e482a14610960578063b58c2d3114610975578063b686d8b4146109a8578063c121be4d146109bd5761025c565b80638da5cb5b14610849578063935c1fb11461087a57806395d89b41146108ad578063a0712d68146108c2578063a5025222146108ec5761025c565b806342966c68116101dd578063626ecc13116101a1578063626ecc131461079857806370a08231146107ad5780637423d96e146107e05780637651bc92146107f557806381a28c281461080a5780638aa001fc1461081f5761025c565b806342966c68146106f05780634ac1ad781461071a5780634e9833ac1461074457806354be50a51461076e5780635f643358146107835761025c565b80632c59f188116102245780632c59f188146103aa578063313ce567146103bf57806334686b73146103ea578063387f7f80146103ff5780633e239e1a146106c65761025c565b806306fdde0314610261578063095ea7b3146102eb57806318160ddd146103385780631f6eeb681461035f57806323b872dd14610374575b600080fd5b34801561026d57600080fd5b50610276610b84565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b0578181015183820152602001610298565b50505050905090810190601f1680156102dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f757600080fd5b506103246004803603604081101561030e57600080fd5b506001600160a01b038135169060200135610c12565b604080519115158252519081900360200190f35b34801561034457600080fd5b5061034d610c79565b60408051918252519081900360200190f35b34801561036b57600080fd5b50610324610c7f565b6103246004803603606081101561038a57600080fd5b506001600160a01b03813581169160208101359091169060400135610c88565b3480156103b657600080fd5b5061034d610e52565b3480156103cb57600080fd5b506103d4610e58565b6040805160ff9092168252519081900360200190f35b3480156103f657600080fd5b5061034d610e66565b34801561040b57600080fd5b506106c4600480360360a081101561042257600080fd5b810190602081018135600160201b81111561043c57600080fd5b82018360208201111561044e57600080fd5b803590602001918460018302840111600160201b8311171561046f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104c157600080fd5b8201836020820111156104d357600080fd5b803590602001918460018302840111600160201b831117156104f457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561054657600080fd5b82018360208201111561055857600080fd5b803590602001918460018302840111600160201b8311171561057957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105cb57600080fd5b8201836020820111156105dd57600080fd5b803590602001918460018302840111600160201b831117156105fe57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561065057600080fd5b82018360208201111561066257600080fd5b803590602001918460018302840111600160201b8311171561068357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e6c945050505050565b005b3480156106d257600080fd5b506103d4600480360360208110156106e957600080fd5b5035610eea565b3480156106fc57600080fd5b506106c46004803603602081101561071357600080fd5b5035610f03565b34801561072657600080fd5b506103d46004803603602081101561073d57600080fd5b5035610f87565b34801561075057600080fd5b506106c46004803603602081101561076757600080fd5b5035610f99565b34801561077a57600080fd5b5061034d610fb5565b34801561078f57600080fd5b50610276610fbb565b3480156107a457600080fd5b50610276611016565b3480156107b957600080fd5b5061034d600480360360208110156107d057600080fd5b50356001600160a01b0316611071565b3480156107ec57600080fd5b5061034d611083565b34801561080157600080fd5b50610276611089565b34801561081657600080fd5b506103246110e4565b34801561082b57600080fd5b506103d46004803603602081101561084257600080fd5b50356110ed565b34801561085557600080fd5b5061085e6110f7565b604080516001600160a01b039092168252519081900360200190f35b34801561088657600080fd5b5061034d6004803603602081101561089d57600080fd5b50356001600160a01b0316611106565b3480156108b957600080fd5b50610276611118565b3480156108ce57600080fd5b506106c4600480360360208110156108e557600080fd5b5035611173565b3480156108f857600080fd5b506103246004803603602081101561090f57600080fd5b50356001600160a01b03166111f3565b34801561092b57600080fd5b506106c4611208565b6103246004803603604081101561094a57600080fd5b506001600160a01b038135169060200135611380565b34801561096c57600080fd5b506102766114ff565b34801561098157600080fd5b506106c46004803603602081101561099857600080fd5b50356001600160a01b031661155a565b3480156109b457600080fd5b5061034d611589565b3480156109c957600080fd5b506106c4600480360360208110156109e057600080fd5b50356001600160a01b031661158f565b3480156109fc57600080fd5b506106c460048036036020811015610a1357600080fd5b50356115b9565b348015610a2657600080fd5b506106c460048036036020811015610a3d57600080fd5b50356115d5565b348015610a5057600080fd5b5061034d6115da565b348015610a6557600080fd5b506102766115e0565b348015610a7a57600080fd5b5061034d60048036036040811015610a9157600080fd5b506001600160a01b038135811691602001351661163b565b348015610ab557600080fd5b5061034d611666565b348015610aca57600080fd5b506106c460048036036020811015610ae157600080fd5b503561166c565b348015610af457600080fd5b5061085e60048036036020811015610b0b57600080fd5b5035611688565b348015610b1e57600080fd5b506106c460048036036020811015610b3557600080fd5b50356001600160a01b03166116a3565b348015610b5157600080fd5b506103d460048036036020811015610b6857600080fd5b50356116d6565b348015610b7b57600080fd5b506103246116e1565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b820191906000526020600020905b815481529060010190602001808311610bed57829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60095481565b600a5460ff1681565b6017546000906001600160a01b03858116911614801590610cb757506017546001600160a01b03848116911614155b8015610cc45750600b5415155b15610d0057601754600b546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050610d0057506000610e4b565b60105460ff168015610d2057506017546001600160a01b03858116911614155b8015610d4557506001600160a01b03831660009081526002602052604090205460ff16155b15610d5257506000610e4b565b6001600160a01b0384166000908152602081905260409020548211801590610d9d57506001600160a01b03841660009081526004602090815260408083203384529091529020548211155b8015610da95750600082115b8015610dce57506001600160a01b038316600090815260208190526040902054828101115b15610e47576001600160a01b0380851660008181526020818152604080832080548890039055600482528083203384528252808320805488900390559387168083528282529184902080548701905583518681529351919360008051602061186f833981519152929081900390910190a3506001610e4b565b5060005b9392505050565b60165481565b601054610100900460ff1681565b60055481565b6017546001600160a01b031633141561025c578451610e929060119060208801906117d3565b508351610ea69060129060208701906117d3565b508251610eba9060139060208601906117d3565b508151610ece9060149060208501906117d3565b508051610ee29060159060208401906117d3565b505050505050565b60006018603c8084045b0481610efc57fe5b0692915050565b600a5460ff168015610f1f57506017546001600160a01b031633145b15610f845733600090815260208190526040902054811115610f4057600080fd5b33600081815260208181526040808320805486900390556009805486900390558051858152905192939260008051602061186f833981519152929181900390910190a35b50565b60006007600462015180840401610efc565b6017546001600160a01b03163314610fb057600080fd5b600d55565b600e5481565b6011805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b6014805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b60006020819052908152604090205481565b600b5481565b6015805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b60065460ff1681565b6000603c82610efc565b6017546001600160a01b031681565b60036020526000908152604090205481565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b600a5460ff16801561118f57506017546001600160a01b031633145b15610f84573360009081526020819052604090205481810110156111b257600080fd5b3360008181526020818152604080832080548601905560098054860190558051858152905160008051602061186f833981519152929181900390910190a350565b60026020526000908152604090205460ff1681565b600d541561137e57600e54420360005b600d5462093a800282106112f75750600d5462093a80029003600160005b6005548110156112f1576017546000828152600160205260409020546001600160a01b039081169116146112e957600f54600c546000838152600160209081526040808320546001600160a01b03168352908290528120549092600a0a918291028161129e57fe5b04816112a657fe5b6000848152600160209081526040808320546001600160a01b03908116845291839052808320805495909404948590039093556017541681522080549091019055505b600101611236565b50611218565b801561137b5742600e555b61130d600e54610eea565b60ff1660151461132757600e8054610e0f19019055611302565b611332600e54610f87565b60ff1660051461134d57600e80546201517f19019055611327565b611358600e546110ed565b600e54611364906116d6565b603c020160ff16600e600082825403925050819055505b50505b565b600061138a611208565b336000908152602081905260409020548211156113a957506000610c73565b6001600160a01b03831660009081526020819052604090205482810110156113d357506000610c73565b6017546001600160a01b031633148015906113fc57506017546001600160a01b03848116911614155b80156114095750600b5415155b1561144557601754600b546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505061144557506000610c73565b60105460ff16801561146257506017546001600160a01b03163314155b801561148757506001600160a01b03831660009081526002602052604090205460ff16155b1561149457506000610c73565b33600090815260208190526040808220805485900390556001600160a01b038516825290208054830190556114c8836116ea565b6040805183815290516001600160a01b03851691339160008051602061186f8339815191529181900360200190a350600192915050565b6012805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b6017546001600160a01b031633148015611576575060105460ff165b1561025c57611584816116ea565b610f84565b600d5481565b6017546001600160a01b0316331480156115ab575060105460ff165b1561025c5761158481611764565b6017546001600160a01b031633146115d057600080fd5b600c55565b601655565b600f5481565b6013805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600c5481565b6017546001600160a01b0316331461168357600080fd5b600b55565b6001602052600090815260409020546001600160a01b031681565b6017546001600160a01b0316331415610f8457601780546001600160a01b0383166001600160a01b031990911617905550565b6000603c8083610ef4565b60105460ff1681565b6001600160a01b03811660009081526002602052604090205460ff16610f8457600580546001600160a01b0383166000818152600360209081526040808320859055600180860190965593825284815283822080546001600160a01b03191684179055918152600290915220805460ff1916909117905550565b6001600160a01b03811660009081526002602052604090205460ff1615610f8457600580546000190190556001600160a01b031660008181526003602090815260408083205483526001825280832080546001600160a01b03191690559282526002905220805460ff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061181457805160ff1916838001178555611841565b82800160010185558215611841579182015b82811115611841578251825591602001919060010190611826565b5061184d929150611851565b5090565b61186b91905b8082111561184d5760008155600101611857565b9056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7231582048befe9bab65a53816b49c1191d2ed33842c9f26f166ac2925df3fe5d3c10a0a64736f6c634300050d0032
Verified Source Code Partial Match
Compiler: v0.5.13+commit.5b0b510c
EVM: petersburg
Optimization: Yes (200 runs)
Token.sol 258 lines
pragma solidity ^0.5.13;
contract Token {
mapping (address => uint256) public balanceOf;
mapping (uint256 => address) public addresses;
mapping (address => bool) public addressExists;
mapping (address => uint256) public addressIndex;
mapping(address => mapping (address => uint256)) allowed;
uint256 public numberOfAddress = 0;
bool public isSecured;
string public name;
string public symbol;
uint256 public totalSupply;
bool public canMintBurn;
uint256 public txnTax;
uint256 public holdingTax;
//In Weeks, on Fridays
uint256 public holdingTaxInterval;
uint256 public lastHoldingTax;
uint256 public holdingTaxDecimals = 2;
bool public isPrivate;
uint8 public decimals = 0;
string public iv;
string public ephemPublicKey;
string public cipherText;
string public mac;
string public bitcoinAddress;
uint256 public bitcoinBalance;
address payable public owner;
constructor(string memory n, string memory a, uint256 totalSupplyToUse, bool iS, bool cMB, uint256 txnTaxToUse, uint256 holdingTaxToUse, uint256 holdingTaxIntervalToUse, bool isPrivateToUse, string memory ivToUse, string memory ephemPublicKeyToUse, string memory cipherTextToUse, string memory macToUse, string memory bitcoinAddressToUse, uint8 decimalsToUse) public {
name = n;
symbol = a;
totalSupply = totalSupplyToUse;
balanceOf[msg.sender] = totalSupplyToUse;
isSecured = iS;
canMintBurn = cMB;
owner = msg.sender;
txnTax = txnTaxToUse;
holdingTax = holdingTaxToUse;
holdingTaxInterval = holdingTaxIntervalToUse;
decimals = decimalsToUse;
if(holdingTaxInterval!=0) {
lastHoldingTax = now;
while(getHour(lastHoldingTax)!=21) {
lastHoldingTax -= 1 hours;
}
while(getWeekday(lastHoldingTax)!=5) {
lastHoldingTax -= 1 days;
}
lastHoldingTax -= getMinute(lastHoldingTax) * (1 minutes) + getSecond(lastHoldingTax) * (1 seconds);
}
isPrivate = isPrivateToUse;
iv = ivToUse;
ephemPublicKey = ephemPublicKeyToUse;
cipherText = cipherTextToUse;
mac = macToUse;
bitcoinAddress = bitcoinAddressToUse;
bitcoinBalance = 0;
addAddress(owner);
}
function transfer(address _to, uint256 _value) public payable returns (bool success) {
chargeHoldingTax();
if (balanceOf[msg.sender] < _value) return false;
if (balanceOf[_to] + _value < balanceOf[_to]) return false;
if (msg.sender != owner && _to != owner && txnTax != 0) {
if(!owner.send(txnTax)) {
return false;
}
}
if(isPrivate && msg.sender != owner && !addressExists[_to]) {
return false;
}
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
addAddress(_to);
emit Transfer(msg.sender, _to, _value);
return true;
}
function transferFrom(
address _from,
address _to,
uint256 _amount
) public payable returns (bool success) {
if (_from != owner && _to != owner && txnTax != 0) {
if(!owner.send(txnTax)) {
return false;
}
}
if(isPrivate && _from != owner && !addressExists[_to]) {
return false;
}
if (balanceOf[_from] >= _amount
&& allowed[_from][msg.sender] >= _amount
&& _amount > 0
&& balanceOf[_to] + _amount > balanceOf[_to]) {
balanceOf[_from] -= _amount;
allowed[_from][msg.sender] -= _amount;
balanceOf[_to] += _amount;
emit Transfer(_from, _to, _amount);
return true;
} else {
return false;
}
}
function approve(address _spender, uint256 _amount) public returns (bool success) {
allowed[msg.sender][_spender] = _amount;
emit Approval(msg.sender, _spender, _amount);
return true;
}
function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
return allowed[_owner][_spender];
}
function changeTxnTax(uint256 _newValue) public {
if(msg.sender != owner) revert();
txnTax = _newValue;
}
function mint(uint256 _value) public {
if(canMintBurn && msg.sender == owner) {
if (balanceOf[msg.sender] + _value < balanceOf[msg.sender]) revert();
balanceOf[msg.sender] += _value;
totalSupply += _value;
emit Transfer(address(0), msg.sender, _value);
}
}
function burn(uint256 _value) public {
if(canMintBurn && msg.sender == owner) {
if (balanceOf[msg.sender] < _value) revert();
balanceOf[msg.sender] -= _value;
totalSupply -= _value;
emit Transfer(msg.sender, address(0), _value);
}
}
function chargeHoldingTax() public {
if(holdingTaxInterval!=0) {
uint256 dateDif = now - lastHoldingTax;
bool changed = false;
while(dateDif >= holdingTaxInterval * (1 weeks)) {
changed=true;
dateDif -= holdingTaxInterval * (1 weeks);
for(uint256 i = 0;i<numberOfAddress;i++) {
if(addresses[i]!=owner) {
uint256 amtOfTaxToPay = ((balanceOf[addresses[i]]) * holdingTax) / (10**holdingTaxDecimals)/ (10**holdingTaxDecimals);
balanceOf[addresses[i]] -= amtOfTaxToPay;
balanceOf[owner] += amtOfTaxToPay;
}
}
}
if(changed) {
lastHoldingTax = now;
while(getHour(lastHoldingTax)!=21) {
lastHoldingTax -= 1 hours;
}
while(getWeekday(lastHoldingTax)!=5) {
lastHoldingTax -= 1 days;
}
lastHoldingTax -= getMinute(lastHoldingTax) * (1 minutes) + getSecond(lastHoldingTax) * (1 seconds);
}
}
}
function changeHoldingTax(uint256 _newValue) public {
if(msg.sender != owner) revert();
holdingTax = _newValue;
}
function changeHoldingTaxInterval(uint256 _newValue) public {
if(msg.sender != owner) revert();
holdingTaxInterval = _newValue;
}
function addAddress (address addr) private {
if(!addressExists[addr]) {
addressIndex[addr] = numberOfAddress;
addresses[numberOfAddress++] = addr;
addressExists[addr] = true;
}
}
function addAddressManual (address addr) public {
if(msg.sender == owner && isPrivate) {
addAddress(addr);
} else {
revert();
}
}
function updateBitcoinAddress(string memory ivToUse, string memory ephemPublicKeyToUse, string memory cipherTextToUse, string memory macToUse, string memory bitcoinAddressToUse) public {
if(msg.sender == owner) {
iv = ivToUse;
ephemPublicKey = ephemPublicKeyToUse;
cipherText = cipherTextToUse;
mac = macToUse;
bitcoinAddress = bitcoinAddressToUse;
} else {
revert();
}
}
function updateBitcoinBalance(uint256 newBalance) public {
bitcoinBalance = newBalance;
}
function removeAddress (address addr) private {
if(addressExists[addr]) {
numberOfAddress--;
addresses[addressIndex[addr]] = address(0);
addressExists[addr] = false;
}
}
function removeAddressManual (address addr) public {
if(msg.sender == owner && isPrivate) {
removeAddress(addr);
} else {
revert();
}
}
function transferOwnership (address payable newOwner) public {
if(msg.sender == owner) {
owner = newOwner;
}
}
function getWeekday(uint timestamp) public returns (uint8) {
return uint8((timestamp / 86400 + 4) % 7);
}
function getHour(uint timestamp) public returns (uint8) {
return uint8((timestamp / 60 / 60) % 24);
}
function getMinute(uint timestamp) public returns (uint8) {
return uint8((timestamp / 60) % 60);
}
function getSecond(uint timestamp) public returns (uint8) {
return uint8(timestamp % 60);
}
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
Read Contract
addressExists 0xa5025222 → bool
addressIndex 0x935c1fb1 → uint256
addresses 0xedf26d9b → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
bitcoinAddress 0x7651bc92 → string
bitcoinBalance 0x2c59f188 → uint256
canMintBurn 0x1f6eeb68 → bool
cipherText 0xd7bd8d6c → string
decimals 0x313ce567 → uint8
ephemPublicKey 0xac8e482a → string
holdingTax 0xe7f6edbd → uint256
holdingTaxDecimals 0xce1f561c → uint256
holdingTaxInterval 0xb686d8b4 → uint256
isPrivate 0xfaff660e → bool
isSecured 0x81a28c28 → bool
iv 0x5f643358 → string
lastHoldingTax 0x54be50a5 → uint256
mac 0x626ecc13 → string
name 0x06fdde03 → string
numberOfAddress 0x34686b73 → uint256
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
txnTax 0x7423d96e → uint256
Write Contract 18 functions
These functions modify contract state and require a wallet transaction to execute.
addAddressManual 0xb58c2d31
address addr
approve 0x095ea7b3
address _spender
uint256 _amount
returns: bool
burn 0x42966c68
uint256 _value
changeHoldingTax 0xc25fe1a4
uint256 _newValue
changeHoldingTaxInterval 0x4e9833ac
uint256 _newValue
changeTxnTax 0xeaf214ea
uint256 _newValue
chargeHoldingTax 0xa610fe9b
No parameters
getHour 0x3e239e1a
uint256 timestamp
returns: uint8
getMinute 0xfa93f883
uint256 timestamp
returns: uint8
getSecond 0x8aa001fc
uint256 timestamp
returns: uint8
getWeekday 0x4ac1ad78
uint256 timestamp
returns: uint8
mint 0xa0712d68
uint256 _value
removeAddressManual 0xc121be4d
address addr
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner
updateBitcoinAddress 0x387f7f80
string ivToUse
string ephemPublicKeyToUse
string cipherTextToUse
string macToUse
string bitcoinAddressToUse
updateBitcoinBalance 0xccb3c32f
uint256 newBalance
Recent Transactions
This address has 1 on-chain transactions, but only 1.2% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →