Address Contract Partially Verified
Address
0x26DB5439F651CAF491A87d48799dA81F191bDB6b
Balance
0 ETH
Nonce
1
Code Size
5517 bytes
Creator
0x56c64218...4b48 at tx 0xde8d75dd...9c33f0
Indexed Transactions
0
Contract Bytecode
5517 bytes
0x60606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610184578063093c52841461020e578063095ea7b31461023d57806313af40351461027357806318160ddd1461029457806323b872dd146102b9578063313ce567146102e15780633a6776961461030a5780633ea69d761461032957806340bea8d214610350578063465f21401461036f5780635b48684e146103915780635e70a6dc146103a457806368624bd7146103bd5780636d1b229d146103dc57806370a08231146103f2578063736ec05c146104115780637893d936146104305780638cb5497c146104495780638da5cb5b1461046457806395d89b411461047757806398c6e7601461048a578063a87430ba1461049d578063a9059cbb146104ed578063ba873f601461050f578063d04eed0614610534578063dd62ed3e1461054a578063dd8a0c561461056f578063e0b86c531461058e578063e1af0121146105b3575b600080fd5b341561018f57600080fd5b6101976105ea565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d35780820151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021957600080fd5b610221610621565b604051600160a060020a03909116815260200160405180910390f35b341561024857600080fd5b61025f600160a060020a0360043516602435610630565b604051901515815260200160405180910390f35b341561027e57600080fd5b610292600160a060020a03600435166106de565b005b341561029f57600080fd5b6102a7610728565b60405190815260200160405180910390f35b34156102c457600080fd5b61025f600160a060020a036004358116906024351660443561072e565b34156102ec57600080fd5b6102f4610897565b60405160ff909116815260200160405180910390f35b341561031557600080fd5b610292600160a060020a036004351661089c565b341561033457600080fd5b610292600160a060020a036004351660243560443515156108fc565b341561035b57600080fd5b6102a7600160a060020a0360043516610985565b341561037a57600080fd5b61025f600160a060020a03600435166024356109a3565b341561039c57600080fd5b61025f6109c3565b34156103af57600080fd5b61025f600435602435610c33565b34156103c857600080fd5b6102a7600160a060020a0360043516610d0f565b34156103e757600080fd5b61025f600435610d4b565b34156103fd57600080fd5b6102a7600160a060020a0360043516610e2d565b341561041c57600080fd5b610292600160a060020a0360043516610e48565b341561043b57600080fd5b61025f600435602435610e92565b341561045457600080fd5b6102926004356024351515610f86565b341561046f57600080fd5b610221610ff8565b341561048257600080fd5b610197611007565b341561049557600080fd5b61022161103e565b34156104a857600080fd5b6104bc600160a060020a036004351661104d565b60405194855260208501939093526040808501929092526060840152608083019190915260a0909101905180910390f35b34156104f857600080fd5b61025f600160a060020a036004351660243561107d565b341561051a57600080fd5b61025f600160a060020a036004351660243560443561118e565b341561053f57600080fd5b61025f6004356112ad565b341561055557600080fd5b6102a7600160a060020a03600435811690602435166112c2565b341561057a57600080fd5b6104bc600160a060020a03600435166112f1565b341561059957600080fd5b61025f600435602435600160a060020a03604435166113e0565b34156105be57600080fd5b6105d2600160a060020a0360043516611511565b60405191825260208201526040908101905180910390f35b60408051908101604052600b81527f43617368426574436f696e000000000000000000000000000000000000000000602082015281565b600554600160a060020a031681565b60008115806106665750600160a060020a0333811660009081526003602090815260408083209387168352600590930190522054155b151561067157600080fd5b600160a060020a0333811660008181526003602090815260408083209488168084526005909501909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60015433600160a060020a039081169116146106f957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005490565b600160a060020a038316600090815260036020526040812060028101548291869185919042901080610767575060018101548154038211155b151561077257600080fd5b805482111561078057600080fd5b600160a060020a038816600090815260036020526040902080549094506107ad908763ffffffff61153916565b8455600160a060020a0387166000908152600360205260409020546107d8908763ffffffff61154b16565b600160a060020a03808916600090815260036020908152604080832094909455339092168152600587019091522054610817908763ffffffff61153916565b84600501600033600160a060020a0316600160a060020a031681526020019081526020016000208190555086600160a060020a031688600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405190815260200160405180910390a3506001979650505050505050565b600881565b60015433600160a060020a039081169116146108b757600080fd5b600554600160a060020a0316156108cd57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015433600160a060020a0390811691161461091757600080fd5b600160a060020a038316600081815260046020908152604080832086845290915290819020805460ff19168415151790558391907fb0352cd8f3667aa88484d4ddf6d0b2142edbc11509eced7cd5fd2752450b42e990849051901515815260200160405180910390a3505050565b600160a060020a031660009081526003602052604090206002015490565b600460209081526000928352604080842090915290825290205460ff1681565b6005546000908190819081908190819081908190600160a060020a031615156109eb57600080fd5b600160a060020a0333818116600090815260036020526040808220600554909b509093169263dd8a0c569291905160a001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a03909116600482015260240160a060405180830381600087803b1515610a7457600080fd5b6102c65a03f11515610a8557600080fd5b5050506040518051906020018051906020018051906020018051906020018051949a50929850909650945090925050600160a060020a0333167ff0e520acbece39466904841cb17dfd01cca67691e7574631f04c27a5518ce8be8760405190815260200160405180910390a28654610b03908763ffffffff61154b16565b8755506001860154600090610b1e908663ffffffff61154b16565b6001880155600287015484901015610b3b57506002860183905560015b6000851180610b475750805b15610b995733600160a060020a03167f86221e8ae433c04d4e775c38b24eaa87361e2b2e20b8a45b751332e3c10085298860010154896002015460405191825260208201526040908101905180910390a25b6003870154158015610baa57508215155b15610c0f5760038701839055600487018290558233600160a060020a038116907f5594352b0765c96adbf0763aaa4c0b5ff8c7b10f2188a14ed95f816153e536849085604051600160a060020a03909216825260208201526040908101905180910390a35b600054610c22908763ffffffff61154b16565b600055600197505050505050505090565b600160a060020a03331660009081526003602052604081206002810154421015610c99576001810154841015610c6857600080fd5b6002810154831015610c7957600080fd5b8060010154841180610c8e5750806002015483115b1515610c9957600080fd5b8054841115610ca757600080fd5b428311610cb357600080fd5b6001810184905560028101839055600160a060020a0333167f86221e8ae433c04d4e775c38b24eaa87361e2b2e20b8a45b751332e3c1008529858560405191825260208201526040908101905180910390a25060019392505050565b600160a060020a0381166000908152600360205260408120600281015442901015610d3d5760009150610d45565b806001015491505b50919050565b33600160a060020a03811660009081526003602052604081206002810154919283929091859142901080610d86575060018101548154038211155b1515610d9157600080fd5b8054821115610d9f57600080fd5b600160a060020a03331660009081526003602052604090208054909450610dcc908763ffffffff61153916565b8455600054610de1908763ffffffff61153916565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58760405190815260200160405180910390a250600195945050505050565b600160a060020a031660009081526003602052604090205490565b60015433600160a060020a03908116911614610e6357600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080838381151580610ea3575080155b1515610eae57600080fd5b600160a060020a033316600090815260036020526040902060018101549093501580610edd5750428360020154105b80610eea57506004830154155b1515610ef557600080fd5b851580610f10575060008681526002602052604090205460ff165b1515610f1b57600080fd5b60038301869055600483018590558533600160a060020a038116907f5594352b0765c96adbf0763aaa4c0b5ff8c7b10f2188a14ed95f816153e536849088604051600160a060020a03909216825260208201526040908101905180910390a350600195945050505050565b60015433600160a060020a03908116911614610fa157600080fd5b60008281526002602052604090819020805460ff191683151517905582907fe81fe697f474ea10e3460ff3510e9315131b0f107afefcc1bbaac89f370d4d1890839051901515815260200160405180910390a25050565b600154600160a060020a031681565b60408051908101604052600381527f4342430000000000000000000000000000000000000000000000000000000000602082015281565b600654600160a060020a031681565b60036020819052600091825260409091208054600182015460028301549383015460049093015491939092909185565b33600160a060020a038116600090815260036020526040812060028101549192839290918591429010806110b8575060018101548154038211155b15156110c357600080fd5b80548211156110d157600080fd5b600160a060020a033316600090815260036020526040902080549094506110fe908763ffffffff61153916565b8455600160a060020a038716600090815260036020526040902054611129908763ffffffff61154b16565b600160a060020a0380891660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a35060019695505050505050565b600160a060020a0333811660009081526004602090815260408083209387168352600380835281842001548352929052908120548190859060ff1615156111d457600080fd5b8484811515806111e2575080155b15156111ed57600080fd5b600160a060020a038816600090815260036020526040902093508615806112375750600160a060020a03331660009081526004602090815260408083208a845290915290205460ff165b151561124257600080fd5b600384018790556004840186905586600160a060020a0389167f5594352b0765c96adbf0763aaa4c0b5ff8c7b10f2188a14ed95f816153e536843389604051600160a060020a03909216825260208201526040908101905180910390a3506001979650505050505050565b60026020526000908152604090205460ff1681565b600160a060020a0391821660009081526003602090815260408083209390941682526005909201909152205490565b6006546000908190819081908190819033600160a060020a0390811691161461131957600080fd5b50600160a060020a038616600090815260036020526040812080549091901161134157600080fd5b80546001820154600283015460038401546004850154600054949a5092985090965094509250611377908763ffffffff61153916565b60009081558082556001820181905560028201819055600382018190556004820155600160a060020a0387167ff6f656546545eaa9657159fbaa12d4918f381295f67c651d353f781b518a59c98760405190815260200160405180910390a25091939590929450565b600160a060020a0333811660009081526004602090815260408083209385168352600380835281842001548352929052908120548190839060ff16151561142657600080fd5b600160a060020a0384166000908152600360205260409020600281015490925042901161145257600080fd5b600182015486111561146357600080fd5b600282015485111561147457600080fd5b81600101548610806114895750816002015485105b151561149457600080fd5b6001820186905560028201859055600160a060020a0384167ff64ab2f72bb8f0fa3002f35d72debc8325fdc2d2e5e8e25022a43642b3e1e36d3388886040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a250600195945050505050565b600160a060020a03166000908152600360208190526040909120908101546004909101549091565b60008282111561154557fe5b50900390565b60008282018381101561155a57fe5b93925050505600a165627a7a72305820f5804cf8f34bf96d33e3dab7c030b33af38748e7a81d75d9c6fb704b007abe2f0029
Verified Source Code Partial Match
Compiler: v0.4.19+commit.c4cbbb05
Optimization: Yes (200 runs)
CashBetCoin.sol 439 lines
pragma solidity 0.4.19;
pragma solidity ^0.4.18;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
pragma solidity ^0.4.18;
pragma solidity ^0.4.18;
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* CashBetCoin ERC20 token
* Based on the OpenZeppelin Standard Token
* https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/StandardToken.sol
*/
contract MigrationSource {
function vacate(address _addr) public returns (uint256 o_balance,
uint256 o_lock_value,
uint256 o_lock_endTime,
bytes32 o_operatorId,
bytes32 o_playerId);
}
contract CashBetCoin is MigrationSource, ERC20 {
using SafeMath for uint256;
string public constant name = "CashBetCoin";
string public constant symbol = "CBC";
uint8 public constant decimals = 8;
uint internal totalSupply_;
address public owner;
mapping(bytes32 => bool) public operators;
mapping(address => User) public users;
mapping(address => mapping(bytes32 => bool)) public employees;
MigrationSource public migrateFrom;
address public migrateTo;
struct User {
uint256 balance;
uint256 lock_value;
uint256 lock_endTime;
bytes32 operatorId;
bytes32 playerId;
mapping(address => uint256) authorized;
}
modifier only_owner(){
require(msg.sender == owner);
_;
}
modifier only_employees(address _user){
require(employees[msg.sender][users[_user].operatorId]);
_;
}
// PlayerId may only be set if operatorId is set too.
modifier playerid_iff_operatorid(bytes32 _opId, bytes32 _playerId){
require(_opId != bytes32(0) || _playerId == bytes32(0));
_;
}
// Value argument must be less than unlocked balance.
modifier value_less_than_unlocked_balance(address _user, uint256 _value){
User storage user = users[_user];
require(user.lock_endTime < block.timestamp ||
_value <= user.balance - user.lock_value);
require(_value <= user.balance);
_;
}
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
event LockIncrease(address indexed user, uint256 amount, uint256 time);
event LockDecrease(address indexed user, address employee, uint256 amount, uint256 time);
event Associate(address indexed user, address agent, bytes32 indexed operatorId, bytes32 playerId);
event Burn(address indexed owner, uint256 value);
event OptIn(address indexed owner, uint256 value);
event Vacate(address indexed owner, uint256 value);
event Employee(address indexed empl, bytes32 indexed operatorId, bool allowed);
event Operator(bytes32 indexed operatorId, bool allowed);
function CashBetCoin(uint _totalSupply) public {
totalSupply_ = _totalSupply;
owner = msg.sender;
User storage user = users[owner];
user.balance = totalSupply_;
user.lock_value = 0;
user.lock_endTime = 0;
user.operatorId = bytes32(0);
user.playerId = bytes32(0);
Transfer(0, owner, _totalSupply);
}
function totalSupply() public view returns (uint256){
return totalSupply_;
}
function balanceOf(address _addr) public view returns (uint256 balance) {
return users[_addr].balance;
}
function transfer(address _to, uint256 _value) public value_less_than_unlocked_balance(msg.sender, _value) returns (bool success) {
User storage user = users[msg.sender];
user.balance = user.balance.sub(_value);
users[_to].balance = users[_to].balance.add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public value_less_than_unlocked_balance(_from, _value) returns (bool success) {
User storage user = users[_from];
user.balance = user.balance.sub(_value);
users[_to].balance = users[_to].balance.add(_value);
user.authorized[msg.sender] = user.authorized[msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public returns (bool success){
// To change the approve amount you first have to reduce the addresses`
// allowance to zero by calling `approve(_spender, 0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
require((_value == 0) || (users[msg.sender].authorized[_spender] == 0));
users[msg.sender].authorized[_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _user, address _spender) public view returns (uint256){
return users[_user].authorized[_spender];
}
// Returns the number of locked tokens at the specified address.
//
function lockedValueOf(address _addr) public view returns (uint256 value) {
User storage user = users[_addr];
// Is the lock expired?
if (user.lock_endTime < block.timestamp) {
// Lock is expired, no locked value.
return 0;
} else {
return user.lock_value;
}
}
// Returns the unix time that the current token lock will expire.
//
function lockedEndTimeOf(address _addr) public view returns (uint256 time) {
return users[_addr].lock_endTime;
}
// Lock the specified number of tokens until the specified unix
// time. The locked value and expiration time are both absolute (if
// the account already had some locked tokens the count will be
// increased to this value.) If the user already has locked tokens
// the locked token count and expiration time may not be smaller
// than the previous values.
//
function increaseLock(uint256 _value, uint256 _time) public returns (bool success) {
User storage user = users[msg.sender];
// Is there a lock in effect?
if (block.timestamp < user.lock_endTime) {
// Lock in effect, ensure nothing gets smaller.
require(_value >= user.lock_value);
require(_time >= user.lock_endTime);
// Ensure something has increased.
require(_value > user.lock_value || _time > user.lock_endTime);
}
// Things we always require.
require(_value <= user.balance);
require(_time > block.timestamp);
user.lock_value = _value;
user.lock_endTime = _time;
LockIncrease(msg.sender, _value, _time);
return true;
}
// Employees of CashBet may decrease the locked token value and/or
// decrease the locked token expiration date. These values may not
// ever be increased by an employee.
//
function decreaseLock(uint256 _value, uint256 _time, address _user) public only_employees(_user) returns (bool success) {
User storage user = users[_user];
// We don't modify expired locks (they are already 0)
require(user.lock_endTime > block.timestamp);
// Ensure nothing gets bigger.
require(_value <= user.lock_value);
require(_time <= user.lock_endTime);
// Ensure something has decreased.
require(_value < user.lock_value || _time < user.lock_endTime);
user.lock_value = _value;
user.lock_endTime = _time;
LockDecrease(_user, msg.sender, _value, _time);
return true;
}
function associate(bytes32 _opId, bytes32 _playerId) public playerid_iff_operatorid(_opId, _playerId) returns (bool success) {
User storage user = users[msg.sender];
// Players can associate their playerId once while the token is
// locked. They can't change this association until the lock
// expires ...
require(user.lock_value == 0 ||
user.lock_endTime < block.timestamp ||
user.playerId == 0);
// OperatorId argument must be empty or in the approved operators set.
require(_opId == bytes32(0) || operators[_opId]);
user.operatorId = _opId;
user.playerId = _playerId;
Associate(msg.sender, msg.sender, _opId, _playerId);
return true;
}
function associationOf(address _addr) public view returns (bytes32 opId, bytes32 playerId) {
return (users[_addr].operatorId, users[_addr].playerId);
}
function setAssociation(address _user, bytes32 _opId, bytes32 _playerId) public only_employees(_user) playerid_iff_operatorid(_opId, _playerId) returns (bool success) {
User storage user = users[_user];
// Employees may only set opId to empty or something they are an
// employee of.
require(_opId == bytes32(0) || employees[msg.sender][_opId]);
user.operatorId = _opId;
user.playerId = _playerId;
Associate(_user, msg.sender, _opId, _playerId);
return true;
}
function setEmployee(address _addr, bytes32 _opId, bool _allowed) public only_owner {
employees[_addr][_opId] = _allowed;
Employee(_addr, _opId, _allowed);
}
function setOperator(bytes32 _opId, bool _allowed) public only_owner {
operators[_opId] = _allowed;
Operator(_opId, _allowed);
}
function setOwner(address _addr) public only_owner {
owner = _addr;
}
function burnTokens(uint256 _value) public value_less_than_unlocked_balance(msg.sender, _value) returns (bool success) {
User storage user = users[msg.sender];
user.balance = user.balance.sub(_value);
totalSupply_ = totalSupply_.sub(_value);
Burn(msg.sender, _value);
return true;
}
// Sets the contract address that this contract will migrate
// from when the optIn() interface is used.
//
function setMigrateFrom(address _addr) public only_owner {
require(migrateFrom == MigrationSource(0));
migrateFrom = MigrationSource(_addr);
}
// Sets the contract address that is allowed to call vacate on this
// contract.
//
function setMigrateTo(address _addr) public only_owner {
migrateTo = _addr;
}
// Called by a token holding address, this method migrates the
// tokens from an older version of the contract to this version.
// The migrated tokens are merged with any existing tokens in this
// version of the contract, resulting in the locked token count
// being set to the sum of locked tokens in the old and new
// contracts and the lock expiration being set the longest lock
// duration for this address in either contract. The playerId is
// transferred unless it was already set in the new contract.
//
// NOTE - allowances (approve) are *not* transferred. If you gave
// another address an allowance in the old contract you need to
// re-approve it in the new contract.
//
function optIn() public returns (bool success) {
require(migrateFrom != MigrationSource(0));
User storage user = users[msg.sender];
uint256 balance;
uint256 lock_value;
uint256 lock_endTime;
bytes32 opId;
bytes32 playerId;
(balance, lock_value, lock_endTime, opId, playerId) =
migrateFrom.vacate(msg.sender);
OptIn(msg.sender, balance);
user.balance = user.balance.add(balance);
bool lockTimeIncreased = false;
user.lock_value = user.lock_value.add(lock_value);
if (user.lock_endTime < lock_endTime) {
user.lock_endTime = lock_endTime;
lockTimeIncreased = true;
}
if (lock_value > 0 || lockTimeIncreased) {
LockIncrease(msg.sender, user.lock_value, user.lock_endTime);
}
if (user.operatorId == bytes32(0) && opId != bytes32(0)) {
user.operatorId = opId;
user.playerId = playerId;
Associate(msg.sender, msg.sender, opId, playerId);
}
totalSupply_ = totalSupply_.add(balance);
return true;
}
// The vacate method is called by a newer version of the CashBetCoin
// contract to extract the token state for an address and migrate it
// to the new contract.
//
function vacate(address _addr) public returns (uint256 o_balance,
uint256 o_lock_value,
uint256 o_lock_endTime,
bytes32 o_opId,
bytes32 o_playerId) {
require(msg.sender == migrateTo);
User storage user = users[_addr];
require(user.balance > 0);
o_balance = user.balance;
o_lock_value = user.lock_value;
o_lock_endTime = user.lock_endTime;
o_opId = user.operatorId;
o_playerId = user.playerId;
totalSupply_ = totalSupply_.sub(user.balance);
user.balance = 0;
user.lock_value = 0;
user.lock_endTime = 0;
user.operatorId = bytes32(0);
user.playerId = bytes32(0);
Vacate(_addr, o_balance);
}
// Don't accept ETH.
function () public payable {
revert();
}
}
Read Contract
allowance 0xdd62ed3e → uint256
associationOf 0xe1af0121 → bytes32, bytes32
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
employees 0x465f2140 → bool
lockedEndTimeOf 0x40bea8d2 → uint256
lockedValueOf 0x68624bd7 → uint256
migrateFrom 0x093c5284 → address
migrateTo 0x98c6e760 → address
name 0x06fdde03 → string
operators 0xd04eed06 → bool
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
users 0xa87430ba → uint256, uint256, uint256, bytes32, bytes32
Write Contract 15 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address _spender
uint256 _value
returns: bool
associate 0x7893d936
bytes32 _opId
bytes32 _playerId
returns: bool
burnTokens 0x6d1b229d
uint256 _value
returns: bool
decreaseLock 0xe0b86c53
uint256 _value
uint256 _time
address _user
returns: bool
increaseLock 0x5e70a6dc
uint256 _value
uint256 _time
returns: bool
optIn 0x5b48684e
No parameters
returns: bool
setAssociation 0xba873f60
address _user
bytes32 _opId
bytes32 _playerId
returns: bool
setEmployee 0x3ea69d76
address _addr
bytes32 _opId
bool _allowed
setMigrateFrom 0x3a677696
address _addr
setMigrateTo 0x736ec05c
address _addr
setOperator 0x8cb5497c
bytes32 _opId
bool _allowed
setOwner 0x13af4035
address _addr
transfer 0xa9059cbb
address _to
uint256 _value
returns: bool
transferFrom 0x23b872dd
address _from
address _to
uint256 _value
returns: bool
vacate 0xdd8a0c56
address _addr
returns: uint256, uint256, uint256, bytes32, bytes32
Recent Transactions
No transactions found for this address