ETH Price: $3,666.47 (+0.73%)

Token

ERC-20: Freeway Pre-staking Rewards (FPR)
 

Overview

Max Total Supply

500,000 FPR

Holders

362

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5.637295693590768619 FPR

Value
$0.00
0x2A0fd12B0FA951F8B8F3051A52b1fBE550D975a3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
FPRUpgradeabilityProxy

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-12-22
*/

// File: contracts\Proxy.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.4.21;

/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
contract Proxy {
  /**
  * @dev Tells the address of the implementation where every call will be delegated.
  * @return address of the implementation to which it will be delegated
  */
  function implementation() public view returns (address);

  /**
  * @dev Fallback function allowing to perform a delegatecall to the given implementation.
  * This function will return whatever the implementation call returns
  */
  function () payable public {
    address _impl = implementation();
    require(_impl != address(0));

    assembly {
      let ptr := mload(0x40)
      calldatacopy(ptr, 0, calldatasize)
      let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
      let size := returndatasize
      returndatacopy(ptr, 0, size)

      switch result
      case 0 { revert(ptr, size) }
      default { return(ptr, size) }
    }
  }
}

// File: contracts\UpgradeabilityProxy.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.4.21;


/**
 * @title UpgradeabilityProxy
 * @dev This contract represents a proxy where the implementation address to which it will delegate can be upgraded
 */
contract UpgradeabilityProxy is Proxy {
  /**
   * @dev This event will be emitted every time the implementation gets upgraded
   * @param implementation representing the address of the upgraded implementation
   */
  event Upgraded(address indexed implementation);

  // Storage position of the address of the current implementation
  bytes32 private constant implementationPosition = keccak256("org.zeppelinos.proxy.implementation");

  /**
   * @dev Constructor function
   */
  function UpgradeabilityProxy() public {}

  /**
   * @dev Tells the address of the current implementation
   * @return address of the current implementation
   */
  function implementation() public view returns (address impl) {
    bytes32 position = implementationPosition;
    assembly {
      impl := sload(position)
    }
  }

  /**
   * @dev Sets the address of the current implementation
   * @param newImplementation address representing the new implementation to be set
   */
  function setImplementation(address newImplementation) internal {
    bytes32 position = implementationPosition;
    assembly {
      sstore(position, newImplementation)
    }
  }

  /**
   * @dev Upgrades the implementation address
   * @param newImplementation representing the address of the new implementation to be set
   */
  function _upgradeTo(address newImplementation) internal {
    address currentImplementation = implementation();
    require(currentImplementation != newImplementation);
    setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }
}

// File: contracts\FPRUpgradeabilityProxy.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.4.21;


/**
 * @title FPRUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with basic authorization control functionalities for FPR token
 */
contract FPRUpgradeabilityProxy is UpgradeabilityProxy {
  /**
  * @dev Event to show ownership has been transferred
  * @param previousOwner representing the address of the previous owner
  * @param newOwner representing the address of the new owner
  */
  event ProxyOwnershipTransferred(address previousOwner, address newOwner);

  // Storage position of the owner of the contract
  bytes32 private constant proxyOwnerPosition = keccak256("org.zeppelinos.proxy.owner");

  /**
  * @dev the constructor sets the original owner of the contract to the sender account.
  */
  function FPRUpgradeabilityProxy() public {
    setUpgradeabilityOwner(msg.sender);
  }

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

  /**
   * @dev Tells the address of the owner
   * @return the address of the owner
   */
  function proxyOwner() public view returns (address owner) {
    bytes32 position = proxyOwnerPosition;
    assembly {
      owner := sload(position)
    }
  }

  /**
   * @dev Sets the address of the owner
   */
  function setUpgradeabilityOwner(address newProxyOwner) internal {
    bytes32 position = proxyOwnerPosition;
    assembly {
      sstore(position, newProxyOwner)
    }
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferProxyOwnership(address newOwner) public onlyProxyOwner {
    require(newOwner != address(0));
    emit ProxyOwnershipTransferred(proxyOwner(), newOwner);
    setUpgradeabilityOwner(newOwner);
  }

  /**
   * @dev Allows the proxy owner to upgrade the current version of the proxy.
   * @param implementation representing the address of the new implementation to be set.
   */
  function upgradeTo(address implementation) public onlyProxyOwner {
    _upgradeTo(implementation);
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

6060604052341561000f57600080fd5b610025336401000000006102f461002a82021704565b610065565b60006040517f6f72672e7a657070656c696e6f732e70726f78792e6f776e65720000000000008152601a016040519081900390209190915550565b6103bc806100746000396000f3006060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100a75780633659cfe6146100d65780635c60da1b146100f7578063f1739cae1461010a575b600061006b610129565b9050600160a060020a038116151561008257600080fd5b60405136600082376000803683855af43d806000843e8180156100a3578184f35b8184fd5b34156100b257600080fd5b6100ba61018b565b604051600160a060020a03909116815260200160405180910390f35b34156100e157600080fd5b6100f5600160a060020a03600435166101c7565b005b341561010257600080fd5b6100ba610129565b341561011557600080fd5b6100f5600160a060020a03600435166101fa565b6000806040517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481527f696f6e000000000000000000000000000000000000000000000000000000000060208201526023016040519081900390205492915050565b6000806040517f6f72672e7a657070656c696e6f732e70726f78792e6f776e65720000000000008152601a016040519081900390205492915050565b6101cf61018b565b600160a060020a031633600160a060020a03161415156101ee57600080fd5b6101f78161028c565b50565b61020261018b565b600160a060020a031633600160a060020a031614151561022157600080fd5b600160a060020a038116151561023657600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd961025f61018b565b82604051600160a060020a039283168152911660208201526040908101905180910390a16101f7816102f4565b6000610296610129565b9050600160a060020a0380821690831614156102b157600080fd5b6102ba8261032f565b81600160a060020a03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b60006040517f6f72672e7a657070656c696e6f732e70726f78792e6f776e65720000000000008152601a016040519081900390209190915550565b60006040517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481527f696f6e0000000000000000000000000000000000000000000000000000000000602082015260230160405190819003902091909155505600a165627a7a723058205c13cf055768fce493a542f9c29e1cc42789c8fcc8065fef2a105163369291730029

Deployed Bytecode

0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100a75780633659cfe6146100d65780635c60da1b146100f7578063f1739cae1461010a575b600061006b610129565b9050600160a060020a038116151561008257600080fd5b60405136600082376000803683855af43d806000843e8180156100a3578184f35b8184fd5b34156100b257600080fd5b6100ba61018b565b604051600160a060020a03909116815260200160405180910390f35b34156100e157600080fd5b6100f5600160a060020a03600435166101c7565b005b341561010257600080fd5b6100ba610129565b341561011557600080fd5b6100f5600160a060020a03600435166101fa565b6000806040517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481527f696f6e000000000000000000000000000000000000000000000000000000000060208201526023016040519081900390205492915050565b6000806040517f6f72672e7a657070656c696e6f732e70726f78792e6f776e65720000000000008152601a016040519081900390205492915050565b6101cf61018b565b600160a060020a031633600160a060020a03161415156101ee57600080fd5b6101f78161028c565b50565b61020261018b565b600160a060020a031633600160a060020a031614151561022157600080fd5b600160a060020a038116151561023657600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd961025f61018b565b82604051600160a060020a039283168152911660208201526040908101905180910390a16101f7816102f4565b6000610296610129565b9050600160a060020a0380821690831614156102b157600080fd5b6102ba8261032f565b81600160a060020a03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25050565b60006040517f6f72672e7a657070656c696e6f732e70726f78792e6f776e65720000000000008152601a016040519081900390209190915550565b60006040517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481527f696f6e0000000000000000000000000000000000000000000000000000000000602082015260230160405190819003902091909155505600a165627a7a723058205c13cf055768fce493a542f9c29e1cc42789c8fcc8065fef2a105163369291730029

Deployed Bytecode Sourcemap

3226:2024:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:13;682:16;:14;:16::i;:::-;666:32;-1:-1:-1;;;;;;713:19:0;;;;705:28;;;;;;777:4;771:11;811:12;808:1;803:3;790:34;893:1;890;876:12;871:3;864:5;859:3;846:49;915:14;960:4;957:1;952:3;937:28;982:6;996:28;;;;1054:4;1049:3;1042:17;996:28;1017:4;1012:3;1005:17;4169:163;;;;;;;;;;;;;;;-1:-1:-1;;;;;4169:163:0;;;;;;;;;;;;;;5141:104;;;;;;;;;;-1:-1:-1;;;;;5141:104:0;;;;;;;2013:169;;;;;;;;;;;;4736:216;;;;;;;;;;-1:-1:-1;;;;;4736:216:0;;;;;2013:169;2060:12;2081:16;1741:48;;;;;;;;;;;;;;;;;;;;2155:15;;2138:39;-1:-1:-1;;2138:39:0:o;4169:163::-;4212:13;4234:16;3667:39;;;;;;;;;;;;;;;4305:15;;4287:40;-1:-1:-1;;4287:40:0:o;5141:104::-;4041:12;:10;:12::i;:::-;-1:-1:-1;;;;;4027:26:0;:10;-1:-1:-1;;;;;4027:26:0;;4019:35;;;;;;;;5213:26;5224:14;5213:10;:26::i;:::-;5141:104;:::o;4736:216::-;4041:12;:10;:12::i;:::-;-1:-1:-1;;;;;4027:26:0;:10;-1:-1:-1;;;;;4027:26:0;;4019:35;;;;;;;;-1:-1:-1;;;;;4823:22:0;;;;4815:31;;;;;;4858:49;4884:12;:10;:12::i;:::-;4898:8;4858:49;;-1:-1:-1;;;;;4858:49:0;;;;;;;;;;;;;;;;;;;;;;4914:32;4937:8;4914:22;:32::i;2687:257::-;2750:29;2782:16;:14;:16::i;:::-;2750:48;-1:-1:-1;;;;;;2813:42:0;;;;;;;;2805:51;;;;;;2863:36;2881:17;2863;:36::i;:::-;2920:17;-1:-1:-1;;;;;2911:27:0;;;;;;;;;;;2687:257;;:::o;4393:176::-;4464:16;3667:39;;;;;;;;;;;;;;;4526:31;;;;-1:-1:-1;4517:47:0:o;2345:183::-;2415:16;1741:48;;;;;;;;;;;;;;;;;;;;2481:35;;;;-1:-1:-1;2472:51:0:o

Swarm Source

bzzr://5c13cf055768fce493a542f9c29e1cc42789c8fcc8065fef2a10516336929173
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.