ETH Price: $2,821.57 (+2.10%)

Token

Golem Network Token Wrapped (GNTW)
 

Overview

Max Total Supply

20,765.347718264989992506 GNTW

Holders

39

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GolemNetworkTokenWrapped

Compiler Version
v0.4.5-nightly.2016.11.11+commit.6248e92d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-11-13
*/

pragma solidity ^0.4.4;

// ERC20-compliant wrapper token for GNT
// adapted from code provided by u/JonnyLatte

contract TokenInterface {
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;

    uint256 public totalSupply;

    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _amount) returns (bool success);
    function transferFrom(
        address _from, address _to, uint256 _amount) returns (bool success);
    function approve(address _spender, uint256 _amount) returns (bool success);
    function allowance(
        address _owner, address _spender) constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _amount);
    event Approval(
        address indexed _owner, address indexed _spender, uint256 _amount);
}

contract Token is TokenInterface {
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function _transfer(address _to,
                       uint256 _amount) internal returns (bool success) {
        if (balances[msg.sender] >= _amount && _amount > 0) {
            balances[msg.sender] -= _amount;
            balances[_to] += _amount;
            Transfer(msg.sender, _to, _amount);
            return true;
        } else {
           return false;
        }
    }

    function _transferFrom(address _from,
                           address _to,
                           uint256 _amount) internal returns (bool success) {
        if (balances[_from] >= _amount
            && allowed[_from][msg.sender] >= _amount
            && _amount > 0) {

            balances[_to] += _amount;
            balances[_from] -= _amount;
            allowed[_from][msg.sender] -= _amount;
            Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    function approve(address _spender, uint256 _amount) returns (bool success) {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

    function allowance(address _owner,
                       address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
}

contract DepositSlot {
    address public constant GNT = 0xa74476443119A942dE498590Fe1f2454d7D4aC0d;

    address public wrapper;

    modifier onlyWrapper {
        if (msg.sender != wrapper) throw;
        _;
    }

    function DepositSlot(address _wrapper) {
        wrapper = _wrapper;
    }

    function collect() onlyWrapper {
        uint amount = TokenInterface(GNT).balanceOf(this);
        if (amount == 0) throw;

        TokenInterface(GNT).transfer(wrapper, amount);
    }
}

contract GolemNetworkTokenWrapped is Token {
    string public constant standard = "Token 0.1";
    string public constant name = "Golem Network Token Wrapped";
    string public constant symbol = "GNTW";
    uint8 public constant decimals = 18;     // same as GNT

    address public constant GNT = 0xa74476443119A942dE498590Fe1f2454d7D4aC0d;

    mapping (address => address) depositSlots;

    function createPersonalDepositAddress() returns (address depositAddress) {
        if (depositSlots[msg.sender] == 0) {
            depositSlots[msg.sender] = new DepositSlot(this);
        }

        return depositSlots[msg.sender];
    }

    function getPersonalDepositAddress(
                address depositer) constant returns (address depositAddress) {
        return depositSlots[depositer];
    }

    function processDeposit() {
        address depositSlot = depositSlots[msg.sender];
        if (depositSlot == 0) throw;

        DepositSlot(depositSlot).collect();

        uint balance = TokenInterface(GNT).balanceOf(this);
        if (balance <= totalSupply) throw;

        uint freshGNTW = balance - totalSupply;
        totalSupply += freshGNTW;
        balances[msg.sender] += freshGNTW;
        Transfer(address(this), msg.sender, freshGNTW);
    }

    function transfer(address _to,
                      uint256 _amount) returns (bool success) {
        if (_to == address(this)) {
            withdrawGNT(_amount);   // convert back to GNT
            return true;
        } else {
            return _transfer(_to, _amount);     // standard transfer
        }
    }

    function transferFrom(address _from,
                          address _to,
                          uint256 _amount) returns (bool success) {
        if (_to == address(this)) throw;        // not supported
        return _transferFrom(_from, _to, _amount);
    }


    function withdrawGNT(uint amount) internal {
        if (balances[msg.sender] < amount) throw;

        balances[msg.sender] -= amount;
        totalSupply -= amount;
        Transfer(msg.sender, address(this), amount);

        TokenInterface(GNT).transfer(msg.sender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"depositer","type":"address"}],"name":"getPersonalDepositAddress","outputs":[{"name":"depositAddress","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"createPersonalDepositAddress","outputs":[{"name":"depositAddress","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"GNT","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"processDeposit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052610aa0806100126000396000f3606060405236156100ae5760e060020a600035046306fdde0381146100b3578063095ea7b3146100f257806318160ddd1461016b57806323b872dd14610179578063313ce567146101ab57806340275f85146101b85780635a3b7e42146101e457806370a082311461022357806389d59ee51461024c5780638c546f81146103145780638f70bfa01461033457806395d89b4114610367578063a9059cbb146103a6578063dd62ed3e146103fa575b610002565b346100025761043360408051808201909152601b81527f476f6c656d204e6574776f726b20546f6b656e20577261707065640000000000602082015281565b34610002576104a1600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b34610002576104b560025481565b34610002576104a1600435602435604435600030600160a060020a031683600160a060020a0316141561050557610002565b34610002576104c7601281565b34610002576104dd600435600160a060020a03808216600090815260036020526040902054165b919050565b346100025761043360408051808201909152600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015281565b34610002576104b5600435600160a060020a0381166000908152602081905260409020546101df565b34610002576104dd600160a060020a0333811660009081526003602052604081205490911615156102f5573060405161020a806108768339018082600160a060020a03168152602001915050604051809103906000f080156100025733600160a060020a03166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000928302929092049190911790555b50600160a060020a033381166000908152600360205260409020541690565b34610002576104dd73a74476443119a942de498590fe1f2454d7d4ac0d81565b34610002576104f9600160a060020a0333811660009081526003602052604081205490911690808215156105e157610002565b346100025761043360408051808201909152600481527f474e545700000000000000000000000000000000000000000000000000000000602082015281565b34610002576104a1600435602435600030600160a060020a031683600160a060020a031614156106ff5761078d82600160a060020a033316600090815260208190526040902054819010156107a457610002565b34610002576104b5600435602435600160a060020a03808316600090815260016020908152604080832093851683529290522054610165565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b6040805160ff9092168252519081900360200190f35b60408051600160a060020a039092168252519081900360200190f35b005b90505b9392505050565b6104fb848484600160a060020a03831660009081526020819052604081205482901080159061055b5750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b80156105675750600082115b1561079c57600160a060020a038084166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339096168452948252918290208054879003905581518681529151929392600080516020610a808339815191529281900390910190a35060016104fe565b82600160a060020a031663e52253816040518160e060020a028152600401809050600060405180830381600087803b156100025760325a03f1156100025750505073a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100025760325a03f11561000257505060405151600254909350831190506106a757610002565b5060028054808303908101909155600160a060020a0333811660008181526020818152604091829020805486019055815185815291519293301692600080516020610a808339815191529281900390910190a3505050565b6107958383600160a060020a03331660009081526020819052604081205482901080159061072d5750600082115b1561086d57600160a060020a033381166000818152602081815260408083208054889003905593871680835291849020805487019055835186815293519193600080516020610a80833981519152929081900390910190a3506001610165565b506001610165565b9050610165565b5060006104fe565b600160a060020a033381166000818152602081815260409182902080548690039055600280548690039055815185815291513090941693600080516020610a808339815191529281900390910190a373a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a031663a9059cbb33836000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100025760325a03f1156100025750505050565b5060006101655600606060405260405160208061020a833950608060405251600080546c0100000000000000000000000080840204600160a060020a0319909116179055506101c08061004a6000396000f3606060405260e060020a60003504638c546f818114610034578063ac210cc714610054578063e52253811461006b575b610002565b346100025761008f73a74476443119a942de498590fe1f2454d7d4ac0d81565b346100025761008f600054600160a060020a031681565b34610002576100ab6000805433600160a060020a039081169116146100ad57610002565b60408051600160a060020a039092168252519081900360200190f35b005b73a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100025760325a03f1156100025750506040515191505080151561012e57610002565b6000805460408051602090810184905281517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03909316600484015260248301859052905173a74476443119a942de498590fe1f2454d7d4ac0d9363a9059cbb936044808201949392918390030190829087803b156100025760325a03f115610002575050505056ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x606060405236156100ae5760e060020a600035046306fdde0381146100b3578063095ea7b3146100f257806318160ddd1461016b57806323b872dd14610179578063313ce567146101ab57806340275f85146101b85780635a3b7e42146101e457806370a082311461022357806389d59ee51461024c5780638c546f81146103145780638f70bfa01461033457806395d89b4114610367578063a9059cbb146103a6578063dd62ed3e146103fa575b610002565b346100025761043360408051808201909152601b81527f476f6c656d204e6574776f726b20546f6b656e20577261707065640000000000602082015281565b34610002576104a1600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b34610002576104b560025481565b34610002576104a1600435602435604435600030600160a060020a031683600160a060020a0316141561050557610002565b34610002576104c7601281565b34610002576104dd600435600160a060020a03808216600090815260036020526040902054165b919050565b346100025761043360408051808201909152600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015281565b34610002576104b5600435600160a060020a0381166000908152602081905260409020546101df565b34610002576104dd600160a060020a0333811660009081526003602052604081205490911615156102f5573060405161020a806108768339018082600160a060020a03168152602001915050604051809103906000f080156100025733600160a060020a03166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19166c01000000000000000000000000928302929092049190911790555b50600160a060020a033381166000908152600360205260409020541690565b34610002576104dd73a74476443119a942de498590fe1f2454d7d4ac0d81565b34610002576104f9600160a060020a0333811660009081526003602052604081205490911690808215156105e157610002565b346100025761043360408051808201909152600481527f474e545700000000000000000000000000000000000000000000000000000000602082015281565b34610002576104a1600435602435600030600160a060020a031683600160a060020a031614156106ff5761078d82600160a060020a033316600090815260208190526040902054819010156107a457610002565b34610002576104b5600435602435600160a060020a03808316600090815260016020908152604080832093851683529290522054610165565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b6040805160ff9092168252519081900360200190f35b60408051600160a060020a039092168252519081900360200190f35b005b90505b9392505050565b6104fb848484600160a060020a03831660009081526020819052604081205482901080159061055b5750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b80156105675750600082115b1561079c57600160a060020a038084166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339096168452948252918290208054879003905581518681529151929392600080516020610a808339815191529281900390910190a35060016104fe565b82600160a060020a031663e52253816040518160e060020a028152600401809050600060405180830381600087803b156100025760325a03f1156100025750505073a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100025760325a03f11561000257505060405151600254909350831190506106a757610002565b5060028054808303908101909155600160a060020a0333811660008181526020818152604091829020805486019055815185815291519293301692600080516020610a808339815191529281900390910190a3505050565b6107958383600160a060020a03331660009081526020819052604081205482901080159061072d5750600082115b1561086d57600160a060020a033381166000818152602081815260408083208054889003905593871680835291849020805487019055835186815293519193600080516020610a80833981519152929081900390910190a3506001610165565b506001610165565b9050610165565b5060006104fe565b600160a060020a033381166000818152602081815260409182902080548690039055600280548690039055815185815291513090941693600080516020610a808339815191529281900390910190a373a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a031663a9059cbb33836000604051602001526040518360e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100025760325a03f1156100025750505050565b5060006101655600606060405260405160208061020a833950608060405251600080546c0100000000000000000000000080840204600160a060020a0319909116179055506101c08061004a6000396000f3606060405260e060020a60003504638c546f818114610034578063ac210cc714610054578063e52253811461006b575b610002565b346100025761008f73a74476443119a942de498590fe1f2454d7d4ac0d81565b346100025761008f600054600160a060020a031681565b34610002576100ab6000805433600160a060020a039081169116146100ad57610002565b60408051600160a060020a039092168252519081900360200190f35b005b73a74476443119a942de498590fe1f2454d7d4ac0d600160a060020a03166370a08231306000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100025760325a03f1156100025750506040515191505080151561012e57610002565b6000805460408051602090810184905281517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03909316600484015260248301859052905173a74476443119a942de498590fe1f2454d7d4ac0d9363a9059cbb936044808201949392918390030190829087803b156100025760325a03f115610002575050505056ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.