ETH Price: $3,024.97 (-2.84%)

Contract

0xE832C302D1160EAe57045eb9d9Ea14daBd2E229c
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
Resolve1142774682024-01-02 0:01:53107 days ago1704153713IN
0xE832C302...aBd2E229c
0 ETH0.00092811.60624744
Evaluate1142774502024-01-02 0:01:17107 days ago1704153677IN
0xE832C302...aBd2E229c
0 ETH0.001697871.60771125
Cast1142773792024-01-01 23:58:55107 days ago1704153535IN
0xE832C302...aBd2E229c
0 ETH0.000015430.13510695
Cast1142773412024-01-01 23:57:39107 days ago1704153459IN
0xE832C302...aBd2E229c
0 ETH0.00001260.10459761
Cast1142773372024-01-01 23:57:31107 days ago1704153451IN
0xE832C302...aBd2E229c
0 ETH0.000012090.10036671
Cast1142772472024-01-01 23:54:31107 days ago1704153271IN
0xE832C302...aBd2E229c
0 ETH0.000009250.10719615
Cast1142772282024-01-01 23:53:53107 days ago1704153233IN
0xE832C302...aBd2E229c
0 ETH0.000011990.10277539
Cast1142772202024-01-01 23:53:37107 days ago1704153217IN
0xE832C302...aBd2E229c
0 ETH0.000012310.10774874
Cast1142771782024-01-01 23:52:13107 days ago1704153133IN
0xE832C302...aBd2E229c
0 ETH0.00001250.1037904
Cast1142764302024-01-01 23:27:17107 days ago1704151637IN
0xE832C302...aBd2E229c
0 ETH0.000012020.10525945
Cast1142763982024-01-01 23:26:13107 days ago1704151573IN
0xE832C302...aBd2E229c
0 ETH0.000012890.11286948
Cast1142760782024-01-01 23:15:33107 days ago1704150933IN
0xE832C302...aBd2E229c
0 ETH0.000010490.1181146
Cast1142760512024-01-01 23:14:39107 days ago1704150879IN
0xE832C302...aBd2E229c
0 ETH0.000014820.1181146
Cast1142741432024-01-01 22:11:03107 days ago1704147063IN
0xE832C302...aBd2E229c
0 ETH0.000012490.10369103
Cast1142738122024-01-01 22:00:01107 days ago1704146401IN
0xE832C302...aBd2E229c
0 ETH0.000013450.1094052
Cast1142738072024-01-01 21:59:51107 days ago1704146391IN
0xE832C302...aBd2E229c
0 ETH0.000012460.1034385
Cast1142735802024-01-01 21:52:17107 days ago1704145937IN
0xE832C302...aBd2E229c
0 ETH0.000015360.1249212
Cast1142723832024-01-01 21:12:23107 days ago1704143543IN
0xE832C302...aBd2E229c
0 ETH0.000012970.10548874
Cast1142717042024-01-01 20:49:45107 days ago1704142185IN
0xE832C302...aBd2E229c
0 ETH0.000012870.10685943
Cast1142698782024-01-01 19:48:53107 days ago1704138533IN
0xE832C302...aBd2E229c
0 ETH0.000021090.17150759
Cast1142690042024-01-01 19:19:45107 days ago1704136785IN
0xE832C302...aBd2E229c
0 ETH0.000012740.1056861
Cast1142679402024-01-01 18:44:17107 days ago1704134657IN
0xE832C302...aBd2E229c
0 ETH0.000012370.10064069
Cast1142672502024-01-01 18:21:17107 days ago1704133277IN
0xE832C302...aBd2E229c
0 ETH0.000014210.113325
Cast1142664582024-01-01 17:54:53107 days ago1704131693IN
0xE832C302...aBd2E229c
0 ETH0.000011440.100177
Cast1142659602024-01-01 17:38:17107 days ago1704130697IN
0xE832C302...aBd2E229c
0 ETH0.000011990.1049596
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Txn Hash Block From To Value
93172282022-05-30 13:38:31688 days ago1653917911
0xE832C302...aBd2E229c
 Contract Creation0 ETH
93172282022-05-30 13:38:31688 days ago1653917911
0xE832C302...aBd2E229c
 Contract Creation0 ETH

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SpartanCouncil

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : SpartanCouncil.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@synthetixio/core-contracts/contracts/proxy/UUPSProxy.sol";

contract SpartanCouncil is UUPSProxy {
    // solhint-disable-next-line no-empty-blocks
    constructor(address firstImplementation) UUPSProxy(firstImplementation) {}
}

File 2 of 6 : UUPSProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./AbstractProxy.sol";
import "./ProxyStorage.sol";
import "../errors/AddressError.sol";
import "../utils/AddressUtil.sol";

contract UUPSProxy is AbstractProxy, ProxyStorage {
    constructor(address firstImplementation) {
        if (firstImplementation == address(0)) {
            revert AddressError.ZeroAddress();
        }

        if (!AddressUtil.isContract(firstImplementation)) {
            revert AddressError.NotAContract(firstImplementation);
        }

        _proxyStore().implementation = firstImplementation;
    }

    function _getImplementation() internal view virtual override returns (address) {
        return _proxyStore().implementation;
    }
}

File 3 of 6 : AbstractProxy.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

abstract contract AbstractProxy {
    fallback() external payable {
        _forward();
    }

    receive() external payable {
        _forward();
    }

    function _forward() internal {
        address implementation = _getImplementation();

        // solhint-disable-next-line no-inline-assembly
        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            returndatacopy(0, 0, returndatasize())

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

    function _getImplementation() internal view virtual returns (address);
}

File 4 of 6 : ProxyStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract ProxyStorage {
    struct ProxyStore {
        address implementation;
        bool simulatingUpgrade;
    }

    function _proxyStore() internal pure returns (ProxyStore storage store) {
        assembly {
            // bytes32(uint(keccak256("io.synthetix.v3.proxy")) - 1)
            store.slot := 0x32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e
        }
    }
}

File 5 of 6 : AddressError.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library AddressError {
    error ZeroAddress();
    error NotAContract(address contr);
}

File 6 of 6 : AddressUtil.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library AddressUtil {
    function isContract(address account) internal view returns (bool) {
        uint256 size;

        assembly {
            size := extcodesize(account)
        }

        return size > 0;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"firstImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contr","type":"address"}],"name":"NotAContract","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516101c53803806101c583398101604081905261002f916100e1565b806001600160a01b0381166100575760405163d92e233d60e01b815260040160405180910390fd5b61006a816100db60201b61006a1760201c565b610096576040516322a2d07b60e21b81526001600160a01b038216600482015260240160405180910390fd5b7f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e80546001600160a01b0319166001600160a01b039290921691909117905550610111565b3b151590565b6000602082840312156100f357600080fd5b81516001600160a01b038116811461010a57600080fd5b9392505050565b60a68061011f6000396000f3fe608060405236601057600e6013565b005b600e5b600060457f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e546001600160a01b031690565b90503660008037600080366000845af43d6000803e8080156065573d6000f35b3d6000fd5b3b15159056fea2646970667358221220f28fdfabddbd9a50f036348b511ebc68e9a94d113737e9e581181abfda9fc73364736f6c634300080b0033000000000000000000000000e5a3b74c9e9c21004d75fb082a5e6eaef831fc93

Deployed Bytecode

0x608060405236601057600e6013565b005b600e5b600060457f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e546001600160a01b031690565b90503660008037600080366000845af43d6000803e8080156065573d6000f35b3d6000fd5b3b15159056fea2646970667358221220f28fdfabddbd9a50f036348b511ebc68e9a94d113737e9e581181abfda9fc73364736f6c634300080b0033

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

000000000000000000000000e5a3b74c9e9c21004d75fb082a5e6eaef831fc93

-----Decoded View---------------
Arg [0] : firstImplementation (address): 0xe5A3B74c9e9c21004d75fb082A5e6eAef831fC93

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e5a3b74c9e9c21004d75fb082a5e6eaef831fc93


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.