ETH Price: $1,627.15 (+0.64%)
 
Transaction Hash
Method
Block
From
To
Transfer222668732025-04-14 11:16:5913 hrs ago1744629419IN
Moeda Token
0 ETH0.000145563.91700719
Transfer222496002025-04-12 1:31:112 days ago1744421471IN
Moeda Token
0 ETH0.000076291.40610801
Transfer222112202025-04-06 16:59:598 days ago1743958799IN
Moeda Token
0 ETH0.000110282.03241302
Transfer222000522025-04-05 3:32:479 days ago1743823967IN
Moeda Token
0 ETH0.000078081.43972708
Transfer221513172025-03-29 8:17:4716 days ago1743236267IN
Moeda Token
0 ETH0.000050051.34696231
Transfer221503522025-03-29 5:02:5916 days ago1743224579IN
Moeda Token
0 ETH0.000053031.42712569
Transfer221329622025-03-26 18:45:4719 days ago1743014747IN
Moeda Token
0 ETH0.000085371.57330472
Transfer221167892025-03-24 12:33:2321 days ago1742819603IN
Moeda Token
0 ETH0.000099251.82962387
Transfer220961062025-03-21 15:21:3524 days ago1742570495IN
Moeda Token
0 ETH0.000085151.56924802
Transfer220875552025-03-20 10:44:1125 days ago1742467451IN
Moeda Token
0 ETH0.000054291.46091263
Transfer220807572025-03-19 11:56:1126 days ago1742385371IN
Moeda Token
0 ETH0.000156882.89130455
Transfer220807322025-03-19 11:50:5926 days ago1742385059IN
Moeda Token
0 ETH0.000227264.18824574
Transfer220793532025-03-19 7:13:3526 days ago1742368415IN
Moeda Token
0 ETH0.000077261.42431872
Transfer220786262025-03-19 4:47:1126 days ago1742359631IN
Moeda Token
0 ETH0.000077671.4318002
Transfer220779992025-03-19 2:40:4726 days ago1742352047IN
Moeda Token
0 ETH0.000052991.42611326
Transfer220773712025-03-19 0:34:4727 days ago1742344487IN
Moeda Token
0 ETH0.000053721.44579977
Transfer220748492025-03-18 16:06:4727 days ago1742314007IN
Moeda Token
0 ETH0.000061641.65887161
Transfer220741732025-03-18 13:51:1127 days ago1742305871IN
Moeda Token
0 ETH0.000068791.85125667
Transfer220709362025-03-18 2:59:1127 days ago1742266751IN
Moeda Token
0 ETH0.000052561.41451118
Transfer220666602025-03-17 12:38:2328 days ago1742215103IN
Moeda Token
0 ETH0.00008121.4964572
Approve220517982025-03-15 10:51:3530 days ago1742035895IN
Moeda Token
0 ETH0.000027230.58627708
Transfer220517082025-03-15 10:33:3530 days ago1742034815IN
Moeda Token
0 ETH0.000053071.42770185
Transfer220516532025-03-15 10:22:3530 days ago1742034155IN
Moeda Token
0 ETH0.000029160.53767678
Transfer220460592025-03-14 15:38:1131 days ago1741966691IN
Moeda Token
0 ETH0.000148442.73628874
Transfer220442852025-03-14 9:41:1131 days ago1741945271IN
Moeda Token
0 ETH0.000061711.66068143
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MoedaToken

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-27
*/

pragma solidity ^0.4.15;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant 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;
  }

  function sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}

/**
 * @title Contracts that should not own Tokens
 * @author Remco Bloemen <remco@2π.com>
 * @dev This blocks incoming ERC23 tokens to prevent accidental loss of tokens.
 * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the
 * owner to reclaim the tokens.
 */
contract HasNoTokens is Ownable {

 /**
  * @dev Reject all ERC23 compatible tokens
  * @param from_ address The address that is transferring the tokens
  * @param value_ uint256 the amount of the specified token
  * @param data_ Bytes The data passed from the caller.
  */
  function tokenFallback(address from_, uint256 value_, bytes data_) external {
    revert();
  }

  /**
   * @dev Reclaim all ERC20Basic compatible tokens
   * @param tokenAddr address The address of the token contract
   */
  function reclaimToken(address tokenAddr) external onlyOwner {
    ERC20Basic tokenInst = ERC20Basic(tokenAddr);
    uint256 balance = tokenInst.balanceOf(this);
    tokenInst.transfer(owner, balance);
  }
}

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) returns (bool) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) returns (bool) {

    // 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) || (allowed[msg.sender][_spender] == 0));

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

contract MigrationAgent {
  /*
    MigrationAgent contracts need to have this exact constant!
    it is intended to be identify the contract, since there is no way to tell
    if a contract is indeed an instance of the right type of contract otherwise
  */
  uint256 public constant MIGRATE_MAGIC_ID = 0x6e538c0d750418aae4131a91e5a20363;

  /*
    A contract implementing this interface is assumed to implement the neccessary
    access controls. E.g;
    * token being migrated FROM is the only one allowed to call migrateTo
    * token being migrated TO has a minting function that can only be called by
      the migration agent
  */
  function migrateTo(address beneficiary, uint256 amount) external;
}

/// @title Moeda Loyalty Points token contract
/// @author Erik Mossberg
contract MoedaToken is StandardToken, Ownable, HasNoTokens {
  string public constant name = "Moeda Loyalty Points";
  string public constant symbol = "MDA";
  uint8 public constant decimals = 18;

  // The migration agent is used to be to allow opt-in transfer of tokens to a
  // new token contract. This could be set sometime in the future if additional
  // functionality needs be added.
  MigrationAgent public migrationAgent;

  // used to ensure that a given address is an instance of a particular contract
  uint256 constant AGENT_MAGIC_ID = 0x6e538c0d750418aae4131a91e5a20363;
  uint256 public totalMigrated;

  uint constant TOKEN_MULTIPLIER = 10**uint256(decimals);
  // don't allow creation of more than this number of tokens
  uint public constant MAX_TOKENS = 20000000 * TOKEN_MULTIPLIER;

  // transfers are locked during minting
  bool public mintingFinished;

  // Log when tokens are migrated to a new contract
  event LogMigration(address indexed spender, address grantee, uint256 amount);
  event LogCreation(address indexed donor, uint256 tokensReceived);
  event LogDestruction(address indexed sender, uint256 amount);
  event LogMintingFinished();

  modifier afterMinting() {
    require(mintingFinished);
    _;
  }

  modifier canTransfer(address recipient) {
    require(mintingFinished && recipient != address(0));
    _;
  }

  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /// @dev Create moeda token and assign partner allocations
  function MoedaToken() {
    // manual distribution
    issueTokens();
  }

  function issueTokens() internal {
    mint(0x2f37be861699b6127881693010596B4bDD146f5e, MAX_TOKENS);
  }

  /// @dev start a migration to a new contract
  /// @param agent address of contract handling migration
  function setMigrationAgent(address agent) external onlyOwner afterMinting {
    require(agent != address(0) && isContract(agent));
    require(MigrationAgent(agent).MIGRATE_MAGIC_ID() == AGENT_MAGIC_ID);
    require(migrationAgent == address(0));
    migrationAgent = MigrationAgent(agent);
  }

  function isContract(address addr) internal constant returns (bool) {
    uint256 size;
    assembly { size := extcodesize(addr) }
    return size > 0;
  }

  /// @dev move a given amount of tokens a new contract (destroying them here)
  /// @param beneficiary address that will get tokens in new contract
  /// @param amount the number of tokens to migrate
  function migrate(address beneficiary, uint256 amount) external afterMinting {
    require(beneficiary != address(0));
    require(migrationAgent != address(0));
    require(amount > 0);

    // safemath subtraction will throw if balance < amount
    balances[msg.sender] = balances[msg.sender].sub(amount);
    totalSupply = totalSupply.sub(amount);
    totalMigrated = totalMigrated.add(amount);
    migrationAgent.migrateTo(beneficiary, amount);

    LogMigration(msg.sender, beneficiary, amount);
  }

  /// @dev destroy a given amount of tokens owned by sender
  // anyone that owns tokens can destroy them, reducing the total supply
  function burn(uint256 amount) external {
    require(amount > 0);
    balances[msg.sender] = balances[msg.sender].sub(amount);
    totalSupply = totalSupply.sub(amount);

    LogDestruction(msg.sender, amount);
  }

  /// @dev unlock transfers
  function unlock() external onlyOwner canMint {
    mintingFinished = true;
    LogMintingFinished();
  }

  /// @dev create tokens, only usable before minting has ended
  /// @param recipient address that will receive the created tokens
  /// @param amount the number of tokens to create
  function mint(address recipient, uint256 amount) internal canMint {
    require(amount > 0);
    require(totalSupply.add(amount) <= MAX_TOKENS);

    balances[recipient] = balances[recipient].add(amount);
    totalSupply = totalSupply.add(amount);

    LogCreation(recipient, amount);
  }

  // only allowed after minting has ended
  // note: transfers to null address not allowed, use burn(value)
  function transfer(address to, uint _value)
  public canTransfer(to) returns (bool)
  {
    return super.transfer(to, _value);
  }

  // only allowed after minting has ended
  // note: transfers to null address not allowed, use burn(value)
  function transferFrom(address from, address to, uint value)
  public canTransfer(to) returns (bool)
  {
    return super.transferFrom(from, to, value);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddr","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setMigrationAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"migrationAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMigrated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"migrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from_","type":"address"},{"name":"value_","type":"uint256"},{"name":"data_","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOKENS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"grantee","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogMigration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"donor","type":"address"},{"indexed":false,"name":"tokensReceived","type":"uint256"}],"name":"LogCreation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogDestruction","type":"event"},{"anonymous":false,"inputs":[],"name":"LogMintingFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

606060405234156200001057600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b6200004664010000000062000e876200004d82021704565b5b620001a9565b62000086732f37be861699b6127881693010596b4bdd146f5e6a108b2a2c2802909400000064010000000062000eb36200008982021704565b5b565b60065460ff16156200009a57600080fd5b60008111620000a857600080fd5b6000546a108b2a2c2802909400000090620000d2908364010000000062000e6d6200018e82021704565b1115620000de57600080fd5b600160a060020a03821660009081526001602052604090205462000111908264010000000062000e6d6200018e82021704565b600160a060020a0383166000908152600160205260408120919091555462000148908264010000000062000e6d6200018e82021704565b600055600160a060020a0382167f6d3add512fa635c40935b84c7df270a56e091dbfc08739b1d929d000e4a542a18260405190815260200160405180910390a25b5b5050565b6000828201838110156200019e57fe5b8091505b5092915050565b610fc380620001b96000396000f300606060405236156101015763ffffffff60e060020a60003504166305d2035b811461010657806306fdde031461012d578063095ea7b3146101b857806317ffc320146101ee57806318160ddd1461020f57806323b872dd14610234578063313ce5671461027057806342966c681461029957806370a08231146102b157806375e2ff65146102e25780638328dbcd146103035780638da5cb5b1461033257806395a0f5eb1461036157806395d89b4114610386578063a69df4b514610411578063a9059cbb14610426578063ad68ebf71461045c578063c0ee0b8a14610480578063dd62ed3e146104b1578063f2fde38b146104e8578063f47c84c514610509575b600080fd5b341561011157600080fd5b61011961052e565b604051901515815260200160405180910390f35b341561013857600080fd5b610140610537565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017d5780820151818401525b602001610164565b50505050905090810190601f1680156101aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c357600080fd5b610119600160a060020a036004351660243561056e565b604051901515815260200160405180910390f35b34156101f957600080fd5b61020d600160a060020a0360043516610615565b005b341561021a57600080fd5b610222610731565b60405190815260200160405180910390f35b341561023f57600080fd5b610119600160a060020a0360043581169060243516604435610737565b604051901515815260200160405180910390f35b341561027b57600080fd5b610283610778565b60405160ff909116815260200160405180910390f35b34156102a457600080fd5b61020d60043561077d565b005b34156102bc57600080fd5b610222600160a060020a0360043516610824565b60405190815260200160405180910390f35b34156102ed57600080fd5b61020d600160a060020a0360043516610843565b005b341561030e57600080fd5b610316610959565b604051600160a060020a03909116815260200160405180910390f35b341561033d57600080fd5b610316610968565b604051600160a060020a03909116815260200160405180910390f35b341561036c57600080fd5b610222610977565b60405190815260200160405180910390f35b341561039157600080fd5b61014061097d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017d5780820151818401525b602001610164565b50505050905090810190601f1680156101aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041c57600080fd5b61020d6109b4565b005b341561043157600080fd5b610119600160a060020a0360043516602435610a1d565b604051901515815260200160405180910390f35b341561046757600080fd5b61020d600160a060020a0360043516602435610a5c565b005b341561048b57600080fd5b61020d60048035600160a060020a0316906024803591604435918201910135610101565b005b34156104bc57600080fd5b610222600160a060020a0360043581169060243516610bde565b60405190815260200160405180910390f35b34156104f357600080fd5b61020d600160a060020a0360043516610c0b565b005b341561051457600080fd5b610222610c63565b60405190815260200160405180910390f35b60065460ff1681565b60408051908101604052601481527f4d6f656461204c6f79616c747920506f696e7473000000000000000000000000602082015281565b60008115806105a05750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b15156105ab57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600354600090819033600160a060020a0390811691161461063557600080fd5b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561068f57600080fd5b6102c65a03f115156106a057600080fd5b5050506040518051600354909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561070f57600080fd5b6102c65a03f1151561072057600080fd5b505050604051805150505b5b505050565b60005481565b600654600090839060ff1680156107565750600160a060020a03811615155b151561076157600080fd5b61076c858585610c72565b91505b5b509392505050565b601281565b6000811161078a57600080fd5b600160a060020a0333166000908152600160205260409020546107b3908263ffffffff610d8716565b600160a060020a033316600090815260016020526040812091909155546107e0908263ffffffff610d8716565b600055600160a060020a0333167f08a381875cba5d2c4e871adcb72ddeee26886849567c5492f52eb5dcd51406e48260405190815260200160405180910390a25b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a0390811691161461085e57600080fd5b60065460ff16151561086f57600080fd5b600160a060020a0381161580159061088b575061088b81610d9e565b5b151561089757600080fd5b6f6e538c0d750418aae4131a91e5a2036381600160a060020a0316633d1bcac06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156108ee57600080fd5b6102c65a03f115156108ff57600080fd5b5050506040518051905014151561091557600080fd5b600454600160a060020a03161561092b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600454600160a060020a031681565b600354600160a060020a031681565b60055481565b60408051908101604052600381527f4d44410000000000000000000000000000000000000000000000000000000000602082015281565b60035433600160a060020a039081169116146109cf57600080fd5b60065460ff16156109df57600080fd5b6006805460ff191660011790557f6cb020f8135880647f26f417a2afa43b38dcc9eb771cfc1c524bdf64f02d181b60405160405180910390a15b5b5b565b600654600090839060ff168015610a3c5750600160a060020a03811615155b1515610a4757600080fd5b610a518484610dad565b91505b5b5092915050565b60065460ff161515610a6d57600080fd5b600160a060020a0382161515610a8257600080fd5b600454600160a060020a03161515610a9957600080fd5b60008111610aa657600080fd5b600160a060020a033316600090815260016020526040902054610acf908263ffffffff610d8716565b600160a060020a03331660009081526001602052604081209190915554610afc908263ffffffff610d8716565b600055600554610b12908263ffffffff610e6d16565b600555600454600160a060020a0316630d213d31838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b6b57600080fd5b6102c65a03f11515610b7c57600080fd5b50505033600160a060020a03167f5387614dd8d042f434b2b210fd289b0688bfb31bfeb0b26ae519b1627bde45f88383604051600160a060020a03909216825260208201526040908101905180910390a25b5b5050565b600080fd5b50505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610c2657600080fd5b600160a060020a03811615610821576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b6a108b2a2c2802909400000081565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152812054909190610cb9908463ffffffff610e6d16565b600160a060020a038086166000908152600160205260408082209390935590871681522054610cee908463ffffffff610d8716565b600160a060020a038616600090815260016020526040902055610d17818463ffffffff610d8716565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082821115610d9357fe5b508082035b92915050565b6000813b908111905b50919050565b600160a060020a033316600090815260016020526040812054610dd6908363ffffffff610d8716565b600160a060020a033381166000908152600160205260408082209390935590851681522054610e0b908363ffffffff610e6d16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610e7c57fe5b8091505b5092915050565b610a19732f37be861699b6127881693010596b4bdd146f5e6a108b2a2c28029094000000610eb3565b5b565b60065460ff1615610ec357600080fd5b60008111610ed057600080fd5b6000546a108b2a2c2802909400000090610ef0908363ffffffff610e6d16565b1115610efb57600080fd5b600160a060020a038216600090815260016020526040902054610f24908263ffffffff610e6d16565b600160a060020a03831660009081526001602052604081209190915554610f51908263ffffffff610e6d16565b600055600160a060020a0382167f6d3add512fa635c40935b84c7df270a56e091dbfc08739b1d929d000e4a542a18260405190815260200160405180910390a25b5b50505600a165627a7a723058208e25c43bf76f8938a3227efe2a86ea148c0c8748566fd8f8806419f8373e72b10029

Deployed Bytecode

0x606060405236156101015763ffffffff60e060020a60003504166305d2035b811461010657806306fdde031461012d578063095ea7b3146101b857806317ffc320146101ee57806318160ddd1461020f57806323b872dd14610234578063313ce5671461027057806342966c681461029957806370a08231146102b157806375e2ff65146102e25780638328dbcd146103035780638da5cb5b1461033257806395a0f5eb1461036157806395d89b4114610386578063a69df4b514610411578063a9059cbb14610426578063ad68ebf71461045c578063c0ee0b8a14610480578063dd62ed3e146104b1578063f2fde38b146104e8578063f47c84c514610509575b600080fd5b341561011157600080fd5b61011961052e565b604051901515815260200160405180910390f35b341561013857600080fd5b610140610537565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017d5780820151818401525b602001610164565b50505050905090810190601f1680156101aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c357600080fd5b610119600160a060020a036004351660243561056e565b604051901515815260200160405180910390f35b34156101f957600080fd5b61020d600160a060020a0360043516610615565b005b341561021a57600080fd5b610222610731565b60405190815260200160405180910390f35b341561023f57600080fd5b610119600160a060020a0360043581169060243516604435610737565b604051901515815260200160405180910390f35b341561027b57600080fd5b610283610778565b60405160ff909116815260200160405180910390f35b34156102a457600080fd5b61020d60043561077d565b005b34156102bc57600080fd5b610222600160a060020a0360043516610824565b60405190815260200160405180910390f35b34156102ed57600080fd5b61020d600160a060020a0360043516610843565b005b341561030e57600080fd5b610316610959565b604051600160a060020a03909116815260200160405180910390f35b341561033d57600080fd5b610316610968565b604051600160a060020a03909116815260200160405180910390f35b341561036c57600080fd5b610222610977565b60405190815260200160405180910390f35b341561039157600080fd5b61014061097d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017d5780820151818401525b602001610164565b50505050905090810190601f1680156101aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041c57600080fd5b61020d6109b4565b005b341561043157600080fd5b610119600160a060020a0360043516602435610a1d565b604051901515815260200160405180910390f35b341561046757600080fd5b61020d600160a060020a0360043516602435610a5c565b005b341561048b57600080fd5b61020d60048035600160a060020a0316906024803591604435918201910135610101565b005b34156104bc57600080fd5b610222600160a060020a0360043581169060243516610bde565b60405190815260200160405180910390f35b34156104f357600080fd5b61020d600160a060020a0360043516610c0b565b005b341561051457600080fd5b610222610c63565b60405190815260200160405180910390f35b60065460ff1681565b60408051908101604052601481527f4d6f656461204c6f79616c747920506f696e7473000000000000000000000000602082015281565b60008115806105a05750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b15156105ab57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600354600090819033600160a060020a0390811691161461063557600080fd5b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561068f57600080fd5b6102c65a03f115156106a057600080fd5b5050506040518051600354909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561070f57600080fd5b6102c65a03f1151561072057600080fd5b505050604051805150505b5b505050565b60005481565b600654600090839060ff1680156107565750600160a060020a03811615155b151561076157600080fd5b61076c858585610c72565b91505b5b509392505050565b601281565b6000811161078a57600080fd5b600160a060020a0333166000908152600160205260409020546107b3908263ffffffff610d8716565b600160a060020a033316600090815260016020526040812091909155546107e0908263ffffffff610d8716565b600055600160a060020a0333167f08a381875cba5d2c4e871adcb72ddeee26886849567c5492f52eb5dcd51406e48260405190815260200160405180910390a25b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a0390811691161461085e57600080fd5b60065460ff16151561086f57600080fd5b600160a060020a0381161580159061088b575061088b81610d9e565b5b151561089757600080fd5b6f6e538c0d750418aae4131a91e5a2036381600160a060020a0316633d1bcac06000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156108ee57600080fd5b6102c65a03f115156108ff57600080fd5b5050506040518051905014151561091557600080fd5b600454600160a060020a03161561092b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600454600160a060020a031681565b600354600160a060020a031681565b60055481565b60408051908101604052600381527f4d44410000000000000000000000000000000000000000000000000000000000602082015281565b60035433600160a060020a039081169116146109cf57600080fd5b60065460ff16156109df57600080fd5b6006805460ff191660011790557f6cb020f8135880647f26f417a2afa43b38dcc9eb771cfc1c524bdf64f02d181b60405160405180910390a15b5b5b565b600654600090839060ff168015610a3c5750600160a060020a03811615155b1515610a4757600080fd5b610a518484610dad565b91505b5b5092915050565b60065460ff161515610a6d57600080fd5b600160a060020a0382161515610a8257600080fd5b600454600160a060020a03161515610a9957600080fd5b60008111610aa657600080fd5b600160a060020a033316600090815260016020526040902054610acf908263ffffffff610d8716565b600160a060020a03331660009081526001602052604081209190915554610afc908263ffffffff610d8716565b600055600554610b12908263ffffffff610e6d16565b600555600454600160a060020a0316630d213d31838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610b6b57600080fd5b6102c65a03f11515610b7c57600080fd5b50505033600160a060020a03167f5387614dd8d042f434b2b210fd289b0688bfb31bfeb0b26ae519b1627bde45f88383604051600160a060020a03909216825260208201526040908101905180910390a25b5b5050565b600080fd5b50505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610c2657600080fd5b600160a060020a03811615610821576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b6a108b2a2c2802909400000081565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152812054909190610cb9908463ffffffff610e6d16565b600160a060020a038086166000908152600160205260408082209390935590871681522054610cee908463ffffffff610d8716565b600160a060020a038616600090815260016020526040902055610d17818463ffffffff610d8716565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082821115610d9357fe5b508082035b92915050565b6000813b908111905b50919050565b600160a060020a033316600090815260016020526040812054610dd6908363ffffffff610d8716565b600160a060020a033381166000908152600160205260408082209390935590851681522054610e0b908363ffffffff610e6d16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610e7c57fe5b8091505b5092915050565b610a19732f37be861699b6127881693010596b4bdd146f5e6a108b2a2c28029094000000610eb3565b5b565b60065460ff1615610ec357600080fd5b60008111610ed057600080fd5b6000546a108b2a2c2802909400000090610ef0908363ffffffff610e6d16565b1115610efb57600080fd5b600160a060020a038216600090815260016020526040902054610f24908263ffffffff610e6d16565b600160a060020a03831660009081526001602052604081209190915554610f51908263ffffffff610e6d16565b600055600160a060020a0382167f6d3add512fa635c40935b84c7df270a56e091dbfc08739b1d929d000e4a542a18260405190815260200160405180910390a25b5b50505600a165627a7a723058208e25c43bf76f8938a3227efe2a86ea148c0c8748566fd8f8806419f8373e72b10029

Swarm Source

bzzr://8e25c43bf76f8938a3227efe2a86ea148c0c8748566fd8f8806419f8373e72b1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.