Contract 0x954b890704693af242613edef1b603825afcd708

 

TxHash Block Age From To Value [TxFee]
0x51db1364f153aa666620b883576477f743f80bc813451f8a09c4c0cf9a453b70739473413 mins ago0x203b6c219971a70b07d7a9bc7377855c994fba3a IN  Cardstack Token0 Ether0.000278766
0x3aedd4de695a3faf829c04daa8518fedd53d972e0ee58a9a6538bd2bf608f914739468822 mins ago0x86c3bf206a6257de8346b98b3a27134dcb95fbcb IN  Cardstack Token0 Ether0.00045974
0xab60898adacae3c034ee4cab1e87aa1f9aaf5451a2c32e6f9d3eb3d7dc9b095673942252 hrs 9 mins ago0x868a6e1a2661d0ca9003cd5d51c135a2dfa30e26 IN  Cardstack Token0 Ether0.00015519
0xc3e0b53a12804eaf01b7c321061b27df991f4c99306286ed003ef7a6531c1ab373941212 hrs 31 mins ago0x868a6e1a2661d0ca9003cd5d51c135a2dfa30e26 IN  Cardstack Token0 Ether0.00015519
0x3beb41c55bf6b12b9f27a8971325deae2488f638363d5590a3e86e9a34a5a7ba73937783 hrs 43 mins ago0x41ce7e1a34c84d251838a41edd53b4e89b02cad2 IN  Cardstack Token0 Ether0.000124152
0xd38ea674340aae44f334b37e27dea786bd3ef68414a8aa4054b58ea489560c8d73936654 hrs 7 mins ago0x8e3b3bee70b20a9d8bfba5097f9dffed123221b2 IN  Cardstack Token0 Ether0.000279342
0x61c80f6b48f245c3ab5b03c3b825f110931c115e4ede409173f0a8bbbb40fe4b73935964 hrs 25 mins ago0x555837f996c7850f172ea0e1708d53233f379b44 IN  Cardstack Token0 Ether0.000414342
0xa3f56a5e13e4fbdd0090ecfa0628e63b7831f734c4925d830a2bb3d09393b2ef73929056 hrs 57 mins ago0x78ff56eed2227f546120ea5448486815b2288980 IN  Cardstack Token0 Ether0.0003694887
0xe6b3b2e21dfb16049343386f2317e984cdc6bc2caf7eaf8ea48655076d10b349739195010 hrs 41 mins ago0x5ca5b80cf8cda3682582beba5102d4d1cdb35f92 IN  Cardstack Token0 Ether0.000278766
0x39ebc812b597cf646d8395cd3dd07dec6788d3adbb5160226eaf2cfa7ca6c14e739188210 hrs 55 mins agoBibox IN  Cardstack Token0 Ether0.00121948
0x24758d07bd1529e2a1ef996bec9af2de02c4868338ed385703d0a04f541fd2ab739076915 hrs 6 mins ago0x9ed28c3304a69ff8de1f20b2e1a1979086a10ae0 IN  Cardstack Token0 Ether0.000277614
0x82ab617612c098e59ac7b60b8b44104dd49dba8de7f821e00267a67c78c482de739068515 hrs 25 mins ago0xf329adbf5d52457fefeac1c08935e67bbd2c4897 IN  Cardstack Token0 Ether0.001879686
0x4cbea8959a38eb805a3e5923b9c0d7d3691d363987f6c019ff0bca73a2dbe9bc73856981 day 10 hrs ago0x811aa0680c7333016a6c86d90a4ec9d96ad64009 IN  Cardstack Token0 Ether0.000031038
0x43fa1d4057d53d12f75fcea16c02267b470c604dc1daeef30282f32d89181ffa73856711 day 10 hrs ago0x4ba1163823c80071f10a172c7933862810b0c164 IN  Cardstack Token0 Ether0.00003091
0x0507f65b85025cacc4c2c18f78843fd06dba73f24e468f667a1fea2793d126c873856251 day 10 hrs ago0x7623440610e125998fa3b52fa08b9d102111982a IN  Cardstack Token0 Ether0.00015455
0xe300281933bc48eafbc12ab1f0b9d9ad01bc36e958907377140e83b0f767aaaf73856151 day 10 hrs ago0xa746fd0f80c415255884efe8391db45f20ba7c54 IN  Cardstack Token0 Ether0.00018364
0x89a629b365b488b404339a42e9aa973ebd609a609997370912791d77fed0236f73853811 day 11 hrs ago0xa2832b5443f36b2f5c417608592679d71eaffae8 IN  Cardstack Token0 Ether0.00084689
0x99f161c7de46c67d50cdf7de57903f4b19345aba5aac518151bf56bff3916bb573834991 day 18 hrs ago0x4a4511f452984c92b17f0931ebffd30dfd9aa225 IN  Cardstack Token0 Ether0.000277614
0x174633dbfe2ee40c131b18dc05c4aae5d8eef8310940ae10b7ada9a120cdc89e73833211 day 19 hrs ago0x14a9f2c036094a9dc42639876faa2dc9f8158c92 IN  Cardstack Token0 Ether0.000091692
0x96a03b156a1e7d88aa11eb96ff071ac46914ddb9e488c0c7893ac3c913e5a14673828391 day 20 hrs ago0x121f9f41e548a9bebcdbd1677045e75a2e396590 IN  Cardstack Token0 Ether0.000678024
0x09b3946cb365aa1e3b7393f7359aa1dd0b2e0005977ce25d37b8549b4db936d673823461 day 22 hrs ago0x646090ce44e6d70faaabc311d52916a58e756751 IN  Cardstack Token0 Ether0.000278766
0xd60ae3a9224412b422b5b3bc491ffb18cfcfeddbdf2da2d7117b93e1e341029973821571 day 23 hrs agoCoinex IN  Cardstack Token0 Ether0.00365844
0x642414818b875b28354a2e5c8b3e8a711ae37e25315df9644528c8bffdb7e3bb73810212 days 3 hrs ago0xb94367ba2b663a0af7409d3cd2080b66aed7a8d5 IN  Cardstack Token0 Ether0.00064911
0xdf1a4bd84f01af5487994a4b5f2b9737e27530be77c0ee106b31a8a5495c0e8a73794962 days 9 hrs ago0x7623440610e125998fa3b52fa08b9d102111982a IN  Cardstack Token0 Ether0.00015455
0xd9f9b090e309b8faf9231efa51ddedf17e148e671f626629dba621505bdc1fd873794232 days 9 hrs ago0xbe80d8c96c0d5b5aed63b370b495650f30be3724 IN  Cardstack Token0 Ether0.00188231
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: AdminUpgradeabilityProxy
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.13;

library AddressUtils {

  /**
   * Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   * as the code is not actually created until after the constructor finishes.
   * @param _addr address to check
   * @return whether the target address is a contract
   */
  function isContract(address _addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly { size := extcodesize(_addr) }
    return size > 0;
  }

}

contract Proxy {
  /**
   * @dev Fallback function.
   * Implemented entirely in `_fallback`.
   */
  function () payable external {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal view returns (address);

  /**
   * @dev Delegates execution to an implementation contract.
   * This is a low level function that doesn't return to its internal call site.
   * It will return to the external caller whatever the implementation returns.
   * @param implementation Address to delegate.
   */
  function _delegate(address implementation) internal {
    assembly {
      // Copy msg.data. We take full control of memory in this inline assembly
      // block because it will not return to Solidity code. We overwrite the
      // Solidity scratch pad at memory position 0.
      calldatacopy(0, 0, calldatasize)

      // Call the implementation.
      // out and outsize are 0 because we don't know the size yet.
      let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0)

      // Copy the returned data.
      returndatacopy(0, 0, returndatasize)

      switch result
      // delegatecall returns 0 on error.
      case 0 { revert(0, returndatasize) }
      default { return(0, returndatasize) }
    }
  }

  /**
   * @dev Function that is run as the first thing in the fallback function.
   * Can be redefined in derived contracts to add functionality.
   * Redefinitions must call super._willFallback().
   */
  function _willFallback() internal {
  }

  /**
   * @dev fallback implementation.
   * Extracted to enable manual triggering.
   */
  function _fallback() internal {
    _willFallback();
    _delegate(_implementation());
  }
}

contract UpgradeabilityProxy is Proxy {
  /**
   * @dev Emitted when the implementation is upgraded.
   * @param implementation Address of the new implementation.
   */
  event Upgraded(address implementation);

  /**
   * @dev Storage slot with the address of the current implementation.
   * This is the keccak-256 hash of "org.zeppelinos.proxy.implementation", and is
   * validated in the constructor.
   */
  bytes32 private constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3;

  /**
   * @dev Contract constructor.
   * @param _implementation Address of the initial implementation.
   */
  constructor(address _implementation) public {
    assert(IMPLEMENTATION_SLOT == keccak256("org.zeppelinos.proxy.implementation"));

    _setImplementation(_implementation);
  }

  /**
   * @dev Returns the current implementation.
   * @return Address of the current implementation
   */
  function _implementation() internal view returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    assembly {
      impl := sload(slot)
    }
  }

  /**
   * @dev Upgrades the proxy to a new implementation.
   * @param newImplementation Address of the new implementation.
   */
  function _upgradeTo(address newImplementation) internal {
    _setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }

  /**
   * @dev Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) private {
    require(AddressUtils.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");

    bytes32 slot = IMPLEMENTATION_SLOT;

    assembly {
      sstore(slot, newImplementation)
    }
  }
}

contract AdminUpgradeabilityProxy is UpgradeabilityProxy {
  /**
   * @dev Emitted when the administration has been transferred.
   * @param previousAdmin Address of the previous admin.
   * @param newAdmin Address of the new admin.
   */
  event AdminChanged(address previousAdmin, address newAdmin);

  /**
   * @dev Storage slot with the admin of the contract.
   * This is the keccak-256 hash of "org.zeppelinos.proxy.admin", and is
   * validated in the constructor.
   */
  bytes32 private constant ADMIN_SLOT = 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b;

  /**
   * @dev Modifier to check whether the `msg.sender` is the admin.
   * If it is, it will run the function. Otherwise, it will delegate the call
   * to the implementation.
   */
  modifier ifAdmin() {
    if (msg.sender == _admin()) {
      _;
    } else {
      _fallback();
    }
  }

  /**
   * Contract constructor.
   * It sets the `msg.sender` as the proxy administrator.
   * @param _implementation address of the initial implementation.
   */
  constructor(address _implementation) UpgradeabilityProxy(_implementation) public {
    assert(ADMIN_SLOT == keccak256("org.zeppelinos.proxy.admin"));

    _setAdmin(msg.sender);
  }

  /**
   * @return The address of the proxy admin.
   */
  function admin() external view ifAdmin returns (address) {
    return _admin();
  }

  /**
   * @return The address of the implementation.
   */
  function implementation() external view ifAdmin returns (address) {
    return _implementation();
  }

  /**
   * @dev Changes the admin of the proxy.
   * Only the current admin can call this function.
   * @param newAdmin Address to transfer proxy administration to.
   */
  function changeAdmin(address newAdmin) external ifAdmin {
    require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
    emit AdminChanged(_admin(), newAdmin);
    _setAdmin(newAdmin);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy.
   * Only the admin can call this function.
   * @param newImplementation Address of the new implementation.
   */
  function upgradeTo(address newImplementation) external ifAdmin {
    _upgradeTo(newImplementation);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * This is useful to initialize the proxied contract.
   * @param newImplementation Address of the new implementation.
   * @param data Data to send as msg.data in the low level call.
   * It should include the signature and the parameters of the function to be
   * called, as described in
   * https://solidity.readthedocs.io/en/develop/abi-spec.html#function-selector-and-argument-encoding.
   */
  function upgradeToAndCall(address newImplementation, bytes data) payable external ifAdmin {
    _upgradeTo(newImplementation);
    require(address(this).call.value(msg.value)(data));
  }

  /**
   * @return The admin slot.
   */
  function _admin() internal view returns (address adm) {
    bytes32 slot = ADMIN_SLOT;
    assembly {
      adm := sload(slot)
    }
  }

  /**
   * @dev Sets the address of the proxy admin.
   * @param newAdmin Address of the new proxy admin.
   */
  function _setAdmin(address newAdmin) internal {
    bytes32 slot = ADMIN_SLOT;

    assembly {
      sstore(slot, newAdmin)
    }
  }

  /**
   * @dev Only fall back when the sender is not the admin.
   */
  function _willFallback() internal {
    require(msg.sender != _admin(), "Cannot call fallback function from the proxy admin");
    super._willFallback();
  }
}

Contract ABI
[{"constant":false,"inputs":[{"name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newImplementation","type":"address"},{"name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_implementation","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousAdmin","type":"address"},{"indexed":false,"name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

Contract Creation Code
608060405234801561001057600080fd5b5060405160208061080d83398101604081815291517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617482527f696f6e00000000000000000000000000000000000000000000000000000000006020830152915190819003602301902081906000805160206107ed8339815191521461009157fe5b6100a381640100000000610104810204565b50604080517f6f72672e7a657070656c696e6f732e70726f78792e61646d696e0000000000008152905190819003601a0190206000805160206107cd833981519152146100ec57fe5b6100fe336401000000006101c2810204565b506101dc565b600061011c826401000000006105ae6101d482021704565b15156101af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015290519081900360840190fd5b506000805160206107ed83398151915255565b6000805160206107cd83398151915255565b6000903b1190565b6105e2806101eb6000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633659cfe681146100765780634f1ef286146100975780635c60da1b146100b75780638f283970146100e8578063f851a44014610109575b61007461011e565b005b34801561008257600080fd5b50610074600160a060020a0360043516610138565b61007460048035600160a060020a03169060248035908101910135610172565b3480156100c357600080fd5b506100cc6101ea565b60408051600160a060020a039092168252519081900360200190f35b3480156100f457600080fd5b50610074600160a060020a0360043516610227565b34801561011557600080fd5b506100cc610339565b610126610364565b610136610131610411565b610436565b565b61014061045a565b600160a060020a031633600160a060020a03161415610167576101628161047f565b61016f565b61016f61011e565b50565b61017a61045a565b600160a060020a031633600160a060020a031614156101dd5761019c8361047f565b30600160a060020a03163483836040518083838082843782019150509250505060006040518083038185875af19250505015156101d857600080fd5b6101e5565b6101e561011e565b505050565b60006101f461045a565b600160a060020a031633600160a060020a0316141561021c57610215610411565b9050610224565b61022461011e565b90565b61022f61045a565b600160a060020a031633600160a060020a0316141561016757600160a060020a03811615156102e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f60448201527f787920746f20746865207a65726f206164647265737300000000000000000000606482015290519081900360840190fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030e61045a565b60408051600160a060020a03928316815291841660208301528051918290030190a1610162816104c7565b600061034361045a565b600160a060020a031633600160a060020a0316141561021c5761021561045a565b61036c61045a565b600160a060020a031633141561040957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e0000000000000000000000000000606482015290519081900360840190fd5b610136610136565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e808015610455573d6000f35b3d6000fd5b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b5490565b610488816104eb565b60408051600160a060020a038316815290517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9181900360200190a150565b7f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b55565b60006104f6826105ae565b151561058957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015290519081900360840190fd5b507f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b6000903b11905600a165627a7a72305820efcb7a35c85d4d66117811ade2579fa33f7925bd5c6c995949763e1c3d12140f002910d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c300000000000000000000000048ec5680eb030356ff12ad82be1433a6992fffe7


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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000048ec5680eb030356ff12ad82be1433a6992fffe7


   Swarm Source:
bzzr://efcb7a35c85d4d66117811ade2579fa33f7925bd5c6c995949763e1c3d12140f
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.