ETH Price: $3,082.22 (-4.02%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Amount:Between 1-10
Reset Filter

Transaction Hash
Block
From
To

There are no matching entries

2 Internal Transactions found.

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
93170082022-05-30 13:32:411331 days ago1653917561
0x37fAc8c1...0aCfeeff8
 Contract Creation0 ETH
93170082022-05-30 13:32:411331 days ago1653917561
0x37fAc8c1...0aCfeeff8
 Contract Creation0 ETH

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AmbassadorCouncil

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

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

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

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

//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;
    }
}

//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);
}

//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

API
[{"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"}]

608060405234801561001057600080fd5b506040516101c53803806101c583398101604081905261002f916100e1565b806001600160a01b0381166100575760405163d92e233d60e01b815260040160405180910390fd5b61006a816100db60201b61006a1760201c565b610096576040516322a2d07b60e21b81526001600160a01b038216600482015260240160405180910390fd5b7f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e80546001600160a01b0319166001600160a01b039290921691909117905550610111565b3b151590565b6000602082840312156100f357600080fd5b81516001600160a01b038116811461010a57600080fd5b9392505050565b60a68061011f6000396000f3fe608060405236601057600e6013565b005b600e5b600060457f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e546001600160a01b031690565b90503660008037600080366000845af43d6000803e8080156065573d6000f35b3d6000fd5b3b15159056fea26469706673582212208ee95740b440a189a8fc9df5afdac47760fd9a1ab72256fb06c02d25e684460164736f6c634300080b00330000000000000000000000006209043fcef509ba5624054da26eb8d52a12efcc

Deployed Bytecode

0x608060405236601057600e6013565b005b600e5b600060457f32402780481dd8149e50baad867f01da72e2f7d02639a6fe378dbd80b6bb446e546001600160a01b031690565b90503660008037600080366000845af43d6000803e8080156065573d6000f35b3d6000fd5b3b15159056fea26469706673582212208ee95740b440a189a8fc9df5afdac47760fd9a1ab72256fb06c02d25e684460164736f6c634300080b0033

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

0000000000000000000000006209043fcef509ba5624054da26eb8d52a12efcc

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006209043fcef509ba5624054da26eb8d52a12efcc


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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  ]

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.