ETH Price: $3,461.38 (+2.17%)
Gas: 12 Gwei

Contract

0x00000100F2A2bd000715001920eB70D229700085
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer198313702024-05-09 8:44:2353 days ago1715244263IN
TrueCAD
0 ETH0.000225685.74430094
Transfer198307652024-05-09 6:42:3553 days ago1715236955IN
TrueCAD
0 ETH0.000189824.83154881
Transfer198274802024-05-08 19:39:4753 days ago1715197187IN
TrueCAD
0 ETH0.000191084.86373072
Transfer198272992024-05-08 19:03:3553 days ago1715195015IN
TrueCAD
0 ETH0.000251926.41417816
Transfer198271952024-05-08 18:42:1153 days ago1715193731IN
TrueCAD
0 ETH0.000191114.86589601
Transfer198256462024-05-08 13:29:3554 days ago1715174975IN
TrueCAD
0 ETH0.000405036.61949381
Transfer198251322024-05-08 11:45:5954 days ago1715168759IN
TrueCAD
0 ETH0.00025614.54284992
Transfer198197662024-05-07 17:45:4754 days ago1715103947IN
TrueCAD
0 ETH0.000383666.80393011
Transfer197564142024-04-28 21:11:5963 days ago1714338719IN
TrueCAD
0 ETH0.000411836.7320273
Approve197526852024-04-28 8:40:3564 days ago1714293635IN
TrueCAD
0 ETH0.000186665.54541448
Approve197524742024-04-28 7:57:5964 days ago1714291079IN
TrueCAD
0 ETH0.000179755.34019437
Transfer196477272024-04-13 16:05:2379 days ago1713024323IN
TrueCAD
0 ETH0.0012292520.0898395
Transfer195890732024-04-05 10:54:4787 days ago1712314487IN
TrueCAD
0 ETH0.0011264318.41306415
Transfer195781792024-04-03 22:18:4788 days ago1712182727IN
TrueCAD
0 ETH0.0019969532.6364259
Transfer195699272024-04-02 18:36:3589 days ago1712082995IN
TrueCAD
0 ETH0.0047213577.16148981
Transfer194972942024-03-23 12:27:23100 days ago1711196843IN
TrueCAD
0 ETH0.0011733219.17577795
Transfer194755752024-03-20 11:21:11103 days ago1710933671IN
TrueCAD
0 ETH0.0021397934.96393345
Approve194704082024-03-19 17:54:47103 days ago1710870887IN
TrueCAD
0 ETH0.0022171839.88810169
Transfer194517142024-03-17 2:50:47106 days ago1710643847IN
TrueCAD
0 ETH0.0012390528.09655338
Transfer194259442024-03-13 11:46:35110 days ago1710330395IN
TrueCAD
0 ETH0.0043761171.50514109
Transfer194078542024-03-10 23:04:11112 days ago1710111851IN
TrueCAD
0 ETH0.004710476.9975536
Transfer193199722024-02-27 16:05:59125 days ago1709049959IN
TrueCAD
0 ETH0.0050860383.12145213
Transfer193088932024-02-26 2:53:47126 days ago1708916027IN
TrueCAD
0 ETH0.0018060829.51700498
Transfer192682132024-02-20 10:05:35132 days ago1708423535IN
TrueCAD
0 ETH0.0024995740.84278781
Transfer192648772024-02-19 22:54:47132 days ago1708383287IN
TrueCAD
0 ETH0.0022820437.2883574
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
90370972019-12-02 8:26:171673 days ago1575275177
TrueCAD
 Contract Creation0 ETH
90370972019-12-02 8:26:171673 days ago1575275177
TrueCAD
 Contract Creation0 ETH
90370972019-12-02 8:26:171673 days ago1575275177
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311706 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311706 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311706 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521712 days ago1571901832
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521712 days ago1571901832
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521712 days ago1571901832
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201714 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201714 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201714 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241714 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241714 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241714 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181714 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181714 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181714 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101714 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101714 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101714 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441715 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441715 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441715 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87840942019-10-21 13:03:471715 days ago1571663027
TrueCAD
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TrueCAD

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 20000 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-27
*/

pragma solidity ^0.4.23;

// File: contracts/Proxy/OwnedUpgradeabilityProxy.sol

/**
 * @title OwnedUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with basic authorization control functionalities
 */
contract TrueCAD {
    /**
    * @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 indexed previousOwner, address indexed newOwner);

    /**
    * @dev Event to show ownership transfer is pending
    * @param currentOwner representing the address of the current owner
    * @param pendingOwner representing the address of the pending owner
    */
    event NewPendingOwner(address currentOwner, address pendingOwner);
    
    // Storage position of the owner and pendingOwner of the contract
    bytes32 private constant proxyOwnerPosition = 0x136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc;//keccak256("trueCAD.proxy.owner");
    bytes32 private constant pendingProxyOwnerPosition = 0xca6c24188764c50fa5c7b728d85fdd98bea1991968b9f4bd4000ae3ace49faac;//keccak256("trueCAD.pending.proxy.owner");

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

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

    /**
    * @dev Throws if called by any account other than the pending owner.
    */
    modifier onlyPendingProxyOwner() {
        require(msg.sender == pendingProxyOwner(), "only pending Proxy Owner");
        _;
    }

    /**
    * @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 Tells the address of the owner
    * @return the address of the owner
    */
    function pendingProxyOwner() public view returns (address pendingOwner) {
        bytes32 position = pendingProxyOwnerPosition;
        assembly {
            pendingOwner := sload(position)
        }
    }

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

    /**
    * @dev Sets the address of the owner
    */
    function _setPendingUpgradeabilityOwner(address newPendingProxyOwner) internal {
        bytes32 position = pendingProxyOwnerPosition;
        assembly {
            sstore(position, newPendingProxyOwner)
        }
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    *changes the pending owner to newOwner. But doesn't actually transfer
    * @param newOwner The address to transfer ownership to.
    */
    function transferProxyOwnership(address newOwner) external onlyProxyOwner {
        require(newOwner != address(0));
        _setPendingUpgradeabilityOwner(newOwner);
        emit NewPendingOwner(proxyOwner(), newOwner);
    }

    /**
    * @dev Allows the pendingOwner to claim ownership of the proxy
    */
    function claimProxyOwnership() external onlyPendingProxyOwner {
        emit ProxyOwnershipTransferred(proxyOwner(), pendingProxyOwner());
        _setUpgradeabilityOwner(pendingProxyOwner());
        _setPendingUpgradeabilityOwner(address(0));
    }

    /**
    * @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) external onlyProxyOwner {
        address currentImplementation;
        bytes32 position = implementationPosition;
        assembly {
            currentImplementation := sload(position)
        }
        require(currentImplementation != implementation);
        assembly {
          sstore(position, implementation)
        }
        emit Upgraded(implementation);
    }
    /**
    * @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 = 0xecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d08982; //keccak256("trueCAD.proxy.implementation");

    function implementation() public view returns (address impl) {
        bytes32 position = implementationPosition;
        assembly {
            impl := sload(position)
        }
    }

    /**
    * @dev Fallback function allowing to perform a delegatecall to the given implementation.
    * This function will return whatever the implementation call returns
    */
    function() external payable {
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, returndatasize, calldatasize)
            let result := delegatecall(gas, sload(0xecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d08982), ptr, calldatasize, returndatasize, returndatasize)
            returndatacopy(ptr, 0, returndatasize)

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingProxyOwner","outputs":[{"name":"pendingOwner","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":"claimProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currentOwner","type":"address"},{"indexed":false,"name":"pendingOwner","type":"address"}],"name":"NewPendingOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

608060405234801561001057600080fd5b5061002333640100000000610028810204565b61004c565b7f136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc55565b6106038061005b6000396000f3006080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100ba5780630add8140146100f85780633659cfe61461010d5780635c60da1b1461013d5780639965b3d614610152578063f1739cae14610167575b604051363d82373d3d36837fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d08982545af43d6000833e8080156100b6573d83f35b3d83fd5b3480156100c657600080fd5b506100cf610195565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561010457600080fd5b506100cf6101ba565b34801561011957600080fd5b5061013b73ffffffffffffffffffffffffffffffffffffffff600435166101df565b005b34801561014957600080fd5b506100cf61031a565b34801561015e57600080fd5b5061013b61033f565b34801561017357600080fd5b5061013b73ffffffffffffffffffffffffffffffffffffffff60043516610466565b7f136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc5490565b7fca6c24188764c50fa5c7b728d85fdd98bea1991968b9f4bd4000ae3ace49faac5490565b6000806101ea610195565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b50507fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d0898280549073ffffffffffffffffffffffffffffffffffffffff80831690841614156102d157600080fd5b82815560405173ffffffffffffffffffffffffffffffffffffffff8416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2505050565b7fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d089825490565b6103476101ba565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b6103ea6101ba565b73ffffffffffffffffffffffffffffffffffffffff16610408610195565b73ffffffffffffffffffffffffffffffffffffffff167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a361045a6104556101ba565b61058f565b61046460006105b3565b565b61046e610195565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561052b57600080fd5b610534816105b3565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b61055d610195565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a150565b7f136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc55565b7fca6c24188764c50fa5c7b728d85fdd98bea1991968b9f4bd4000ae3ace49faac555600a165627a7a723058202dc334bc3bb45b1de9bbb34c5ecabfc8e5966a732fe50a706e38026ed4213fd60029

Deployed Bytecode

0x6080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100ba5780630add8140146100f85780633659cfe61461010d5780635c60da1b1461013d5780639965b3d614610152578063f1739cae14610167575b604051363d82373d3d36837fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d08982545af43d6000833e8080156100b6573d83f35b3d83fd5b3480156100c657600080fd5b506100cf610195565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561010457600080fd5b506100cf6101ba565b34801561011957600080fd5b5061013b73ffffffffffffffffffffffffffffffffffffffff600435166101df565b005b34801561014957600080fd5b506100cf61031a565b34801561015e57600080fd5b5061013b61033f565b34801561017357600080fd5b5061013b73ffffffffffffffffffffffffffffffffffffffff60043516610466565b7f136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc5490565b7fca6c24188764c50fa5c7b728d85fdd98bea1991968b9f4bd4000ae3ace49faac5490565b6000806101ea610195565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b50507fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d0898280549073ffffffffffffffffffffffffffffffffffffffff80831690841614156102d157600080fd5b82815560405173ffffffffffffffffffffffffffffffffffffffff8416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2505050565b7fecfd2ee7a4295d533a08882dec6729582fc6bda7812f32b75ae1ea4807d089825490565b6103476101ba565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b6103ea6101ba565b73ffffffffffffffffffffffffffffffffffffffff16610408610195565b73ffffffffffffffffffffffffffffffffffffffff167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a361045a6104556101ba565b61058f565b61046460006105b3565b565b61046e610195565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561052b57600080fd5b610534816105b3565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b61055d610195565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a150565b7f136d55780fb1583e87bb6fa1fda0bbe2746553b012c9291a830fad1e95c269cc55565b7fca6c24188764c50fa5c7b728d85fdd98bea1991968b9f4bd4000ae3ace49faac555600a165627a7a723058202dc334bc3bb45b1de9bbb34c5ecabfc8e5966a732fe50a706e38026ed4213fd60029

Swarm Source

bzzr://2dc334bc3bb45b1de9bbb34c5ecabfc8e5966a732fe50a706e38026ed4213fd6

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  ]
[ 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.