ETH Price: $3,357.65 (-7.35%)
Gas: 28 Gwei

Contract

0xCCA95E580BbbD04851EBFB85F77FD46C9b91f11C
 
Transaction Hash
Method
Block
From
To
Value
Lock Mana48433722018-01-02 19:53:262267 days ago1514922806IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48429752018-01-02 18:08:082267 days ago1514916488IN
0xCCA95E58...C9b91f11C
0 ETH0.0011488820
Lock Mana48429032018-01-02 17:49:542267 days ago1514915394IN
0xCCA95E58...C9b91f11C
0 ETH0.000847620
Lock Mana48428682018-01-02 17:41:442267 days ago1514914904IN
0xCCA95E58...C9b91f11C
0 ETH0.0003341414.275
Lock Mana48427122018-01-02 17:04:152267 days ago1514912655IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48424812018-01-02 16:02:582267 days ago1514908978IN
0xCCA95E58...C9b91f11C
0 ETH0.000573820
Lock Mana48424352018-01-02 15:51:212267 days ago1514908281IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48422022018-01-02 14:56:032267 days ago1514904963IN
0xCCA95E58...C9b91f11C
0 ETH0.000573820
Lock Mana48421702018-01-02 14:49:532267 days ago1514904593IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48421412018-01-02 14:41:262267 days ago1514904086IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48418082018-01-02 13:14:122267 days ago1514898852IN
0xCCA95E58...C9b91f11C
0 ETH0.0008899821
Lock Mana48414242018-01-02 11:42:122267 days ago1514893332IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48414212018-01-02 11:41:422267 days ago1514893302IN
0xCCA95E58...C9b91f11C
0 ETH0.000847620
Lock Mana48401372018-01-02 6:07:002268 days ago1514873220IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48394432018-01-02 3:28:492268 days ago1514863729IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48390862018-01-02 1:54:312268 days ago1514858071IN
0xCCA95E58...C9b91f11C
0 ETH0.000847620
Lock Mana48389992018-01-02 1:31:072268 days ago1514856667IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48386312018-01-02 0:05:292268 days ago1514851529IN
0xCCA95E58...C9b91f11C
0 ETH0.000847620
Lock Mana48382812018-01-01 22:39:142268 days ago1514846354IN
0xCCA95E58...C9b91f11C
0 ETH0.0008488820
Lock Mana48381312018-01-01 22:02:012268 days ago1514844121IN
0xCCA95E58...C9b91f11C
0 ETH0.0008488820
Lock Mana48380602018-01-01 21:46:182268 days ago1514843178IN
0xCCA95E58...C9b91f11C
0 ETH0.0008488820
Lock Mana48378702018-01-01 20:59:582268 days ago1514840398IN
0xCCA95E58...C9b91f11C
0 ETH0.0011488820
Lock Mana48377192018-01-01 20:19:012268 days ago1514837941IN
0xCCA95E58...C9b91f11C
0 ETH0.000847620
Lock Mana48376862018-01-01 20:10:272268 days ago1514837427IN
0xCCA95E58...C9b91f11C
0 ETH0.001147620
Lock Mana48374972018-01-01 19:23:062268 days ago1514834586IN
0xCCA95E58...C9b91f11C
0 ETH0.0011488820
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:
TerraformReserve

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-09-29
*/

pragma solidity ^0.4.15;

contract ERC20 {
  event Transfer(address indexed from, address indexed to, uint value);
  function balanceOf( address who ) public constant returns (uint value);
  function transfer( address to, uint value) public returns (bool ok);
  function approve( address to, uint value) public returns (bool ok);
  function transferFrom(address from, address to, uint value) public returns (bool ok);
}

contract Owned {
    address public owner;

    function Owned() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        owner = newOwner;
    }
}

contract TerraformReserve is Owned {

  /* Storing a balance for each user */
  mapping (address => uint256) public lockedBalance;
  
  /* Store the total sum locked */
  uint public totalLocked;
  
  /* Reference to the token */
  ERC20 public manaToken;
  
  /* Contract that will assign the LAND and burn/return tokens */
  address public landClaim;
  
  /* Prevent the token from accepting deposits */
  bool public acceptingDeposits;

  event LockedBalance(address user, uint mana);
  event LandClaimContractSet(address target);
  event LandClaimExecuted(address user, uint value, bytes data);
  event AcceptingDepositsChanged(bool _acceptingDeposits);

  function TerraformReserve(address _token) {
    require(_token != 0);
    manaToken = ERC20(_token);
    acceptingDeposits = true;
  }

  /**
   * Lock MANA into the contract.
   * This contract does not have another way to take the tokens out other than
   * through the target contract.
   */
  function lockMana(address _from, uint256 mana) public {
    require(acceptingDeposits);
    require(mana >= 1000 * 1e18);
    require(manaToken.transferFrom(_from, this, mana));

    lockedBalance[_from] += mana; 
    totalLocked += mana;
    LockedBalance(_from, mana);
  }
  
  /**
   * Allows the owner of the contract to pause acceptingDeposits
   */
  function changeContractState(bool _acceptingDeposits) public onlyOwner {
    acceptingDeposits = _acceptingDeposits;
    AcceptingDepositsChanged(acceptingDeposits);
  }
  
  /**
   * Set the contract that can move the staked MANA.
   * Calls the `approve` function of the ERC20 token with the total amount.
   */
  function setTargetContract(address target) public onlyOwner {
    landClaim = target;
    manaToken.approve(landClaim, totalLocked);
    LandClaimContractSet(target);
  }

  /**
   * Prevent payments to the contract
   */
  function () public payable {
    revert();
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"target","type":"address"}],"name":"setTargetContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_acceptingDeposits","type":"bool"}],"name":"changeContractState","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"mana","type":"uint256"}],"name":"lockMana","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"manaToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"landClaim","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"acceptingDeposits","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"mana","type":"uint256"}],"name":"LockedBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"}],"name":"LandClaimContractSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"LandClaimExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_acceptingDeposits","type":"bool"}],"name":"AcceptingDepositsChanged","type":"event"}]

6060604052341561000f57600080fd5b604051602080610684833981016040528080519150505b5b60008054600160a060020a03191633600160a060020a03161790555b600160a060020a038116151561005857600080fd5b60038054600160a060020a038316600160a060020a03199091161790556004805460a060020a60ff021916740100000000000000000000000000000000000000001790555b505b6105d6806100ae6000396000f300606060405236156100885763ffffffff60e060020a60003504166347fc822f811461009057806356891412146100b1578063689a521d146100d65780636b7006d7146100f057806374c97c99146101145780638da5cb5b1461014357806390b06593146101725780639ae697bf146101a1578063df334093146101d2578063f2fde38b146101f9575b5b600080fd5b005b341561009b57600080fd5b61008e600160a060020a036004351661021a565b005b34156100bc57600080fd5b6100c461031f565b60405190815260200160405180910390f35b34156100e157600080fd5b61008e6004351515610325565b005b34156100fb57600080fd5b61008e600160a060020a03600435166024356103bf565b005b341561011f57600080fd5b610127610502565b604051600160a060020a03909116815260200160405180910390f35b341561014e57600080fd5b610127610511565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b610127610520565b604051600160a060020a03909116815260200160405180910390f35b34156101ac57600080fd5b6100c4600160a060020a036004351661052f565b60405190815260200160405180910390f35b34156101dd57600080fd5b6101e5610541565b604051901515815260200160405180910390f35b341561020457600080fd5b61008e600160a060020a0360043516610562565b005b60005433600160a060020a0390811691161461023557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556003546002549082169263095ea7b392169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156102c157600080fd5b6102c65a03f115156102d257600080fd5b50505060405180519050507f53e0b78f8befdee4500f015571e9fc9e272eea929617a296cc4dfbd6f94ab7a981604051600160a060020a03909116815260200160405180910390a15b5b50565b60025481565b60005433600160a060020a0390811691161461034057600080fd5b6004805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515810291909117918290557ff3c7809150929110a2f541a06b6e5504f96d2a64b6d23a11af57dceda35a6f2a9160ff91900416604051901515815260200160405180910390a15b5b50565b60045474010000000000000000000000000000000000000000900460ff1615156103e857600080fd5b683635c9adc5dea000008110156103fe57600080fd5b600354600160a060020a03166323b872dd83308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561046a57600080fd5b6102c65a03f1151561047b57600080fd5b50505060405180519050151561049057600080fd5b600160a060020a0382166000908152600160205260409081902080548301905560028054830190557febfb816221eaf798e256b970818c54755242a19e3e1a2b5b2060f9d22ecbf46d908390839051600160a060020a03909216825260208201526040908101905180910390a15b5050565b600354600160a060020a031681565b600054600160a060020a031681565b600454600160a060020a031681565b60016020526000908152604090205481565b60045474010000000000000000000000000000000000000000900460ff1681565b60005433600160a060020a0390811691161461057d57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b505600a165627a7a723058206fe8501df1c5236403021a4816bbbc844e8a18a89c6abf2feb764f82908230f700290000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942

Deployed Bytecode

0x606060405236156100885763ffffffff60e060020a60003504166347fc822f811461009057806356891412146100b1578063689a521d146100d65780636b7006d7146100f057806374c97c99146101145780638da5cb5b1461014357806390b06593146101725780639ae697bf146101a1578063df334093146101d2578063f2fde38b146101f9575b5b600080fd5b005b341561009b57600080fd5b61008e600160a060020a036004351661021a565b005b34156100bc57600080fd5b6100c461031f565b60405190815260200160405180910390f35b34156100e157600080fd5b61008e6004351515610325565b005b34156100fb57600080fd5b61008e600160a060020a03600435166024356103bf565b005b341561011f57600080fd5b610127610502565b604051600160a060020a03909116815260200160405180910390f35b341561014e57600080fd5b610127610511565b604051600160a060020a03909116815260200160405180910390f35b341561017d57600080fd5b610127610520565b604051600160a060020a03909116815260200160405180910390f35b34156101ac57600080fd5b6100c4600160a060020a036004351661052f565b60405190815260200160405180910390f35b34156101dd57600080fd5b6101e5610541565b604051901515815260200160405180910390f35b341561020457600080fd5b61008e600160a060020a0360043516610562565b005b60005433600160a060020a0390811691161461023557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556003546002549082169263095ea7b392169060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156102c157600080fd5b6102c65a03f115156102d257600080fd5b50505060405180519050507f53e0b78f8befdee4500f015571e9fc9e272eea929617a296cc4dfbd6f94ab7a981604051600160a060020a03909116815260200160405180910390a15b5b50565b60025481565b60005433600160a060020a0390811691161461034057600080fd5b6004805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000831515810291909117918290557ff3c7809150929110a2f541a06b6e5504f96d2a64b6d23a11af57dceda35a6f2a9160ff91900416604051901515815260200160405180910390a15b5b50565b60045474010000000000000000000000000000000000000000900460ff1615156103e857600080fd5b683635c9adc5dea000008110156103fe57600080fd5b600354600160a060020a03166323b872dd83308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561046a57600080fd5b6102c65a03f1151561047b57600080fd5b50505060405180519050151561049057600080fd5b600160a060020a0382166000908152600160205260409081902080548301905560028054830190557febfb816221eaf798e256b970818c54755242a19e3e1a2b5b2060f9d22ecbf46d908390839051600160a060020a03909216825260208201526040908101905180910390a15b5050565b600354600160a060020a031681565b600054600160a060020a031681565b600454600160a060020a031681565b60016020526000908152604090205481565b60045474010000000000000000000000000000000000000000900460ff1681565b60005433600160a060020a0390811691161461057d57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b505600a165627a7a723058206fe8501df1c5236403021a4816bbbc844e8a18a89c6abf2feb764f82908230f70029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942

-----Decoded View---------------
Arg [0] : _token (address): 0x0F5D2fB29fb7d3CFeE444a200298f468908cC942

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942


Swarm Source

bzzr://6fe8501df1c5236403021a4816bbbc844e8a18a89c6abf2feb764f82908230f7

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.