ETH Price: $3,472.17 (+2.10%)

Contract

0x00000100F2A2bd000715001920eB70D229700085
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer213844332024-12-12 5:48:1113 days ago1733982491IN
TrueCAD
0 ETH0.0005730614.5729738
Approve213554032024-12-08 4:31:4717 days ago1733632307IN
TrueCAD
0 ETH0.000492588.80483663
Transfer213550932024-12-08 3:29:4717 days ago1733628587IN
TrueCAD
0 ETH0.000473798.40054825
Transfer213544952024-12-08 1:29:5917 days ago1733621399IN
TrueCAD
0 ETH0.000617610.09165873
Transfer213076752024-12-01 12:31:4724 days ago1733056307IN
TrueCAD
0 ETH0.0007101111.60541908
Transfer212607682024-11-24 23:04:2330 days ago1732489463IN
TrueCAD
0 ETH0.000430137.62317506
Transfer212287992024-11-20 11:57:4735 days ago1732103867IN
TrueCAD
0 ETH0.0006737611.0134826
Transfer211881352024-11-14 19:51:2340 days ago1731613883IN
TrueCAD
0 ETH0.0010928224.78735885
Transfer211881172024-11-14 19:47:4740 days ago1731613667IN
TrueCAD
0 ETH0.0016493226.96028826
Transfer211702412024-11-12 7:54:4743 days ago1731398087IN
TrueCAD
0 ETH0.0016701127.28946225
Transfer210804342024-10-30 19:06:5955 days ago1730315219IN
TrueCAD
0 ETH0.00101618.01805875
Approve209531652024-10-13 0:41:5973 days ago1728780119IN
TrueCAD
0 ETH0.0007139512.7616433
Transfer209529852024-10-13 0:05:4773 days ago1728777947IN
TrueCAD
0 ETH0.000552989.80264383
Transfer209527092024-10-12 23:09:4773 days ago1728774587IN
TrueCAD
0 ETH0.000511168.35079296
Approve208387952024-09-27 1:53:1189 days ago1727401991IN
TrueCAD
0 ETH0.0006391911.42535705
Transfer208374562024-09-26 21:23:2389 days ago1727385803IN
TrueCAD
0 ETH0.000975517.29610661
Approve207112082024-09-09 6:16:47107 days ago1725862607IN
TrueCAD
0 ETH0.000071581.27961706
Transfer207111552024-09-09 6:06:11107 days ago1725861971IN
TrueCAD
0 ETH0.00012242
Approve206189892024-08-27 9:21:23120 days ago1724750483IN
TrueCAD
0 ETH0.000103321.84696075
Transfer205721072024-08-20 20:06:11126 days ago1724184371IN
TrueCAD
0 ETH0.00012242
Transfer198313702024-05-09 8:44:23230 days ago1715244263IN
TrueCAD
0 ETH0.000225685.74430094
Transfer198307652024-05-09 6:42:35230 days ago1715236955IN
TrueCAD
0 ETH0.000189824.83154881
Transfer198274802024-05-08 19:39:47230 days ago1715197187IN
TrueCAD
0 ETH0.000191084.86373072
Transfer198272992024-05-08 19:03:35230 days ago1715195015IN
TrueCAD
0 ETH0.000251926.41417816
Transfer198271952024-05-08 18:42:11230 days ago1715193731IN
TrueCAD
0 ETH0.000191114.86589601
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
90370972019-12-02 8:26:171850 days ago1575275177
TrueCAD
 Contract Creation0 ETH
90370972019-12-02 8:26:171850 days ago1575275177
TrueCAD
 Contract Creation0 ETH
90370972019-12-02 8:26:171850 days ago1575275177
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311883 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311883 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88394132019-10-30 9:04:311883 days ago1572426271
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521889 days ago1571901832
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521889 days ago1571901832
TrueCAD
 Contract Creation0 ETH
88016262019-10-24 7:23:521889 days ago1571901832
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201891 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201891 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87872372019-10-22 1:08:201891 days ago1571706500
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241891 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241891 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867402019-10-21 23:15:241891 days ago1571699724
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181891 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181891 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87867382019-10-21 23:15:181891 days ago1571699718
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101891 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101891 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87863722019-10-21 21:49:101891 days ago1571694550
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441891 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441891 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87847062019-10-21 15:24:441891 days ago1571671484
TrueCAD
 Contract Creation0 ETH
87840942019-10-21 13:03:471891 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.