Address Contract Partially Verified
Address
0xDecade1c6Bf2cD9fb89aFad73e4a519C867adcF5
Balance
0 ETH
Nonce
1
Code Size
3067 bytes
Creator
0x0F6248dA...FE84 at tx 0x1fb14138...6282f7
Indexed Transactions
0 (1 on-chain, 0.6% indexed)
Contract Bytecode
3067 bytes
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a9059cbb11610071578063a9059cbb1461032e578063dd62ed3e1461035a578063e971c25214610388578063ebbc4965146104af578063eff08672146104b75761010b565b806370a08231146102d25780638456cb59146102f857806395d89b4114610300578063a6f9dae1146103085761010b565b8063313ce567116100de578063313ce5671461021d5780633f4ba83a1461023b5780634000aea0146102455780635c975abb146102ca5761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b6101186104dd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b03813516906020013561056b565b604080519115158252519081900360200190f35b6101d56105ee565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356105f4565b610225610664565b6040805160ff9092168252519081900360200190f35b61024361066d565b005b6101b96004803603606081101561025b57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561028b57600080fd5b82018360208201111561029d57600080fd5b803590602001918460018302840111640100000000831117156102bf57600080fd5b5090925090506106d2565b6101b9610795565b6101d5600480360360208110156102e857600080fd5b50356001600160a01b03166107a5565b6102436107b7565b610118610823565b6102436004803603602081101561031e57600080fd5b50356001600160a01b031661087d565b6101b96004803603604081101561034457600080fd5b506001600160a01b0381351690602001356108b6565b6101d56004803603604081101561037057600080fd5b506001600160a01b03813581169160200135166108ca565b6102436004803603604081101561039e57600080fd5b8101906020810181356401000000008111156103b957600080fd5b8201836020820111156103cb57600080fd5b803590602001918460208302840111640100000000831117156103ed57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043d57600080fd5b82018360208201111561044f57600080fd5b8035906020019184602083028401116401000000008311171561047157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506108f5945050505050565b610243610a43565b610243600480360360208110156104cd57600080fd5b50356001600160a01b0316610aa3565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105635780601f1061053857610100808354040283529160200191610563565b820191906000526020600020905b81548152906001019060200180831161054657829003601f168201915b505050505081565b3360009081526004602052604081205482111561058757600080fd5b3360008181526005602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60035481565b6001600160a01b038316600090815260056020908152604080832033845290915281205482111561062457600080fd5b61062f848484610abf565b50506001600160a01b038316600090815260056020908152604080832033845290915290208054829003905560019392505050565b60025460ff1681565b6006546001600160a01b0316331461068457600080fd5b600754600160a01b900460ff1661069a57600080fd5b6007805460ff60a01b191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6000806106e0338787610abf565b9050801561078c57856001600160a01b031663a4c0ed36338787876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561077357600080fd5b505af1158015610787573d6000803e3d6000fd5b505050505b95945050505050565b600754600160a01b900460ff1681565b60046020526000908152604090205481565b6006546001600160a01b031633146107ce57600080fd5b600754600160a01b900460ff16156107e557600080fd5b6007805460ff60a01b1916600160a01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105635780601f1061053857610100808354040283529160200191610563565b6006546001600160a01b0316331461089457600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60006108c3338484610abf565b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6006546001600160a01b0316331461090c57600080fd5b600754600160a81b900460ff161561092357600080fd5b805182511461093157600080fd5b6000805b83518260ff161015610a3557828260ff168151811061095057fe5b602002602001015160046000868560ff168151811061096b57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550838260ff16815181106109a657fe5b60200260200101516001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858560ff16815181106109f257fe5b60200260200101516040518082815260200191505060405180910390a3828260ff1681518110610a1e57fe5b602002602001015181019050816001019150610935565b600380549091019055505050565b6007546001600160a01b03163314610a5a57600080fd5b600680546001600160a01b0319163390811790915560408051918252517fcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a49181900360200190a1565b610aab610aec565b610ab361066d565b610abc8161087d565b50565b600754600090600160a01b900460ff1615610ad957600080fd5b610ae4848484610b2f565b949350505050565b6006546001600160a01b03163314610b0357600080fd5b600754600160a81b900460ff1615610b1a57600080fd5b6007805460ff60a81b1916600160a81b179055565b6001600160a01b038316600090815260046020526040812054821115610b5457600080fd5b6001600160a01b03808516600081815260046020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001939250505056fea26469706673582212200d8f691582b2aacc86dac234ed0518ff79c96961167718e9141d64503e4fb21064736f6c63430007040033
Verified Source Code Partial Match
Compiler: v0.7.4+commit.3f05b770
EVM: istanbul
Optimization: Yes (200 runs)
WisdomToken.sol 149 lines
// __ __ _ _ _____ _
// / / /\ \ (_)___ __| | ___ _ __ ___ /__ \___ | | _____ _ __
// \ \/ \/ / / __|/ _` |/ _ \| '_ ` _ \ / /\/ _ \| |/ / _ \ '_ \
// \ /\ /| \__ \ (_| | (_) | | | | | | / / | (_) | < __/ | | |
// \/ \/ |_|___/\__,_|\___/|_| |_| |_| \/ \___/|_|\_\___|_| |_|
//
// Author: Grzegorz Kucmierz
// Source: https://github.com/gkucmierz/wisdom-token
// Docs: https://gkucmierz.github.io/wisdom-token
//
pragma solidity ^0.7.2;
contract ERC20 {
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) private allowed;
function _transfer(address sender, address recipient, uint256 amount) internal virtual returns (bool) {
require(balanceOf[sender] >= amount);
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function transfer(address recipient, uint256 amount) public returns (bool) {
return _transfer(msg.sender, recipient, amount);
}
function allowance(address holder, address spender) public view returns (uint256) {
return allowed[holder][spender];
}
function approve(address spender, uint256 amount) public returns (bool) {
require(balanceOf[msg.sender] >= amount);
allowed[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
require(allowed[sender][msg.sender] >= amount);
_transfer(sender, recipient, amount);
allowed[sender][msg.sender] -= amount;
return true;
}
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed holder, address indexed spender, uint256 value);
}
contract Ownable {
address owner;
address newOwner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function changeOwner(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
function acceptOwner() public {
require(newOwner == msg.sender);
owner = msg.sender;
emit TransferOwnership(msg.sender);
}
event TransferOwnership(address newOwner);
}
interface IERC667Receiver {
function onTokenTransfer(address from, uint256 amount, bytes calldata data) external;
}
contract ERC667 is ERC20 {
function transferAndCall(address recipient, uint amount, bytes calldata data) public returns (bool) {
bool success = _transfer(msg.sender, recipient, amount);
if (success){
IERC667Receiver(recipient).onTokenTransfer(msg.sender, amount, data);
}
return success;
}
}
contract Pausable is Ownable {
bool public paused = true;
modifier whenNotPaused() {
require(!paused);
_;
}
modifier whenPaused() {
require(paused);
_;
}
function pause() onlyOwner whenNotPaused public {
paused = true;
emit Pause();
}
function unpause() onlyOwner whenPaused public {
paused = false;
emit Unpause();
}
event Pause();
event Unpause();
}
contract Issuable is ERC20, Ownable {
bool locked = false;
modifier whenUnlocked() {
require(!locked);
_;
}
function issue(address[] memory addr, uint256[] memory amount) public onlyOwner whenUnlocked {
require(addr.length == amount.length);
uint8 i;
uint256 sum = 0;
for (i = 0; i < addr.length; ++i) {
balanceOf[addr[i]] = amount[i];
emit Transfer(address(0x0), addr[i], amount[i]);
sum += amount[i];
}
totalSupply += sum;
}
function lock() internal onlyOwner whenUnlocked {
locked = true;
}
}
contract WisdomToken is ERC667, Pausable, Issuable {
constructor() {
name = 'Experty Wisdom Token';
symbol = 'WIS';
decimals = 18;
totalSupply = 0;
}
function _transfer(address sender, address recipient, uint256 amount)
internal whenNotPaused override returns (bool) {
return super._transfer(sender, recipient, amount);
}
function alive(address _newOwner) public {
lock();
unpause();
changeOwner(_newOwner);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
paused 0x5c975abb → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 10 functions
These functions modify contract state and require a wallet transaction to execute.
acceptOwner 0xebbc4965
No parameters
alive 0xeff08672
address _newOwner
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
changeOwner 0xa6f9dae1
address _newOwner
issue 0xe971c252
address[] addr
uint256[] amount
pause 0x8456cb59
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferAndCall 0x4000aea0
address recipient
uint256 amount
bytes data
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
unpause 0x3f4ba83a
No parameters
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 →