ETH Price: $3,339.44 (-0.28%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CoreRouter

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

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

// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// GENERATED CODE - do not edit manually!!
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------

contract CoreRouter {
    error UnknownSelector(bytes4 sel);

    address private constant _ASSOCIATED_SYSTEMS_MODULE = 0x9c28b86B2EAc76F0D83298a574Bcec1557ed202A;
    address private constant _ELECTION_MODULE_SATELLITE = 0xcc6cfB3993C539dC2b7bBB686Ea7F06C516923D8;
    address private constant _SNAPSHOT_VOTE_POWER_MODULE = 0xB19fe55e4aA1df3feFd9eBef91f93c830cF66DCD;
    address private constant _INITIAL_MODULE_BUNDLE = 0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1;

    fallback() external payable {
        // Lookup table: Function selector => implementation contract
        bytes4 sig4 = msg.sig;
        address implementation;

        assembly {
            let sig32 := shr(224, sig4)

            function findImplementation(sig) -> result {
                if lt(sig,0x74cc3e0d) {
                    if lt(sig,0x4b579b8e) {
                        if lt(sig,0x2d22bef9) {
                            switch sig
                            case 0x008634bd { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.getVotingPowerForUser()
                            case 0x086146d2 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getCurrentPeriod()
                            case 0x088149ae { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.initElectionModuleSatellite()
                            case 0x1627540c { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.nominateNewOwner()
                            case 0x1a93d1c3 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getGasLimit()
                            case 0x2132e40f { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.hasProcessedMsg()
                            leave
                        }
                        switch sig
                        case 0x2d22bef9 { result := _ASSOCIATED_SYSTEMS_MODULE } // AssociatedSystemsModule.initOrUpgradeNft()
                        case 0x3354c7f6 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getSupportedNetworks()
                        case 0x3659cfe6 { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.upgradeTo()
                        case 0x3d32f239 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getEpochSchedule()
                        case 0x4a9ceff7 { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.prepareBallotWithSnapshot()
                        leave
                    }
                    if lt(sig,0x60988e09) {
                        switch sig
                        case 0x4b579b8e { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.setSnapshotContract()
                        case 0x4bee8894 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.removeRegisteredEmitters()
                        case 0x529dca32 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.receiveWormholeMessages()
                        case 0x53a47bb7 { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.nominatedOwner()
                        case 0x54bc7f85 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.setRegisteredEmitters()
                        leave
                    }
                    switch sig
                    case 0x60988e09 { result := _ASSOCIATED_SYSTEMS_MODULE } // AssociatedSystemsModule.getAssociatedSystem()
                    case 0x686251b7 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getWormholeCore()
                    case 0x6acac61f { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite._recvTweakEpochSchedule()
                    case 0x718fe928 { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.renounceNomination()
                    case 0x72e74f32 { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.takeVotePowerSnapshot()
                    leave
                }
                if lt(sig,0xc6f79537) {
                    if lt(sig,0xaaf10f42) {
                        switch sig
                        case 0x74cc3e0d { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.cast()
                        case 0x79ba5097 { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.acceptOwnership()
                        case 0x7b3d63e0 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite._recvDismissMembers()
                        case 0x8cb6628c { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getWormholeRelayer()
                        case 0x8da5cb5b { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.owner()
                        case 0x9425bb45 { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.getVotePowerSnapshotId()
                        leave
                    }
                    switch sig
                    case 0xaaf10f42 { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.getImplementation()
                    case 0xac59ec2a { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.setScale()
                    case 0xaf90f474 { result := _SNAPSHOT_VOTE_POWER_MODULE } // SnapshotVotePowerModule.getPreparedBallot()
                    case 0xb119c5bd { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getRegisteredEmitters()
                    case 0xc5798523 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.isElectionModuleInitialized()
                    leave
                }
                if lt(sig,0xe4220d1e) {
                    switch sig
                    case 0xc6f79537 { result := _ASSOCIATED_SYSTEMS_MODULE } // AssociatedSystemsModule.initOrUpgradeToken()
                    case 0xc7f62cda { result := _INITIAL_MODULE_BUNDLE } // InitialModuleBundle.simulateUpgradeTo()
                    case 0xd245d983 { result := _ASSOCIATED_SYSTEMS_MODULE } // AssociatedSystemsModule.registerUnmanagedSystem()
                    case 0xd83eb231 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.withdrawVote()
                    case 0xe1425cf5 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getElectionSettings()
                    leave
                }
                switch sig
                case 0xe4220d1e { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite._recvResolve()
                case 0xe549a290 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getNextElectionSettings()
                case 0xee7d72b4 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.setGasLimit()
                case 0xfb5e80d8 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.quoteCrossChainDeliveryPrice()
                case 0xffe7f643 { result := _ELECTION_MODULE_SATELLITE } // ElectionModuleSatellite.getEpochIndex()
                leave
            }

            implementation := findImplementation(sig32)
        }

        if (implementation == address(0)) {
            revert UnknownSelector(sig4);
        }

        // Delegatecall to the implementation contract
        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())
            }
        }
    }
}

Settings
{
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"bytes4","name":"sel","type":"bytes4"}],"name":"UnknownSelector","type":"error"},{"stateMutability":"payable","type":"fallback"}]

6080604052348015600e575f80fd5b506108548061001c5f395ff3fe60806040525f80357fffffffff000000000000000000000000000000000000000000000000000000001690505f8160e01c610730565b5f6374cc3e0d8210156103b857634b579b8e82101561021657632d22bef982101561014b5781628634bd81146100a15763086146d281146100bd5763088149ae81146100d957631627540c81146100f557631a93d1c3811461011157632132e40f811461012d57610145565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b81632d22bef9811461018857633354c7f681146101a457633659cfe681146101c057633d32f23981146101dc57634a9ceff781146101f857610210565b739c28b86b2eac76f0d83298a574bcec1557ed202a9150610210565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610210565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610210565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610210565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b6360988e098210156102ed5781634b579b8e811461025f57634bee8894811461027b5763529dca328114610297576353a47bb781146102b3576354bc7f8581146102cf576102e7565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506102e7565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b816360988e09811461032a5763686251b7811461034657636acac61f81146103625763718fe928811461037e576372e74f32811461039a576103b2565b739c28b86b2eac76f0d83298a574bcec1557ed202a91506103b2565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506103b2565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506103b2565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506103b2565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b63c6f7953782101561058d5763aaf10f428210156104c257816374cc3e0d8114610418576379ba5097811461043457637b3d63e0811461045057638cb6628c811461046c57638da5cb5b811461048857639425bb4581146104a4576104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506104bc565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b8163aaf10f4281146104ff5763ac59ec2a811461051b5763af90f47481146105375763b119c5bd81146105535763c5798523811461056f57610587565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610587565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610587565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610587565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610587565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b63e4220d1e821015610664578163c6f7953781146105d65763c7f62cda81146105f25763d245d983811461060e5763d83eb231811461062a5763e1425cf581146106465761065e565b739c28b86b2eac76f0d83298a574bcec1557ed202a915061065e565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc1915061065e565b739c28b86b2eac76f0d83298a574bcec1557ed202a915061065e565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d8915061065e565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b8163e4220d1e81146106a15763e549a29081146106bd5763ee7d72b481146106d95763fb5e80d881146106f55763ffe7f643811461071157610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b505b919050565b61073981610035565b9150505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107ac57816040517fc2a825f50000000000000000000000000000000000000000000000000000000081526004016107a39190610805565b60405180910390fd5b365f80375f80365f845af43d5f803e805f81146107c7573d5ff35b3d5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6107ff816107cb565b82525050565b5f6020820190506108185f8301846107f6565b9291505056fea26469706673582212201b8e9c48e6f99e98ec8ade678fc580075c69ae5b88a4e06da4c09c628087e62264736f6c634300081a0033

Deployed Bytecode

0x60806040525f80357fffffffff000000000000000000000000000000000000000000000000000000001690505f8160e01c610730565b5f6374cc3e0d8210156103b857634b579b8e82101561021657632d22bef982101561014b5781628634bd81146100a15763086146d281146100bd5763088149ae81146100d957631627540c81146100f557631a93d1c3811461011157632132e40f811461012d57610145565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610145565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b81632d22bef9811461018857633354c7f681146101a457633659cfe681146101c057633d32f23981146101dc57634a9ceff781146101f857610210565b739c28b86b2eac76f0d83298a574bcec1557ed202a9150610210565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610210565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610210565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610210565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b6360988e098210156102ed5781634b579b8e811461025f57634bee8894811461027b5763529dca328114610297576353a47bb781146102b3576354bc7f8581146102cf576102e7565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506102e7565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506102e7565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b816360988e09811461032a5763686251b7811461034657636acac61f81146103625763718fe928811461037e576372e74f32811461039a576103b2565b739c28b86b2eac76f0d83298a574bcec1557ed202a91506103b2565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506103b2565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506103b2565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506103b2565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b63c6f7953782101561058d5763aaf10f428210156104c257816374cc3e0d8114610418576379ba5097811461043457637b3d63e0811461045057638cb6628c811461046c57638da5cb5b811461048857639425bb4581146104a4576104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891506104bc565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc191506104bc565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd91505b5061072b565b8163aaf10f4281146104ff5763ac59ec2a811461051b5763af90f47481146105375763b119c5bd81146105535763c5798523811461056f57610587565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc19150610587565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610587565b73b19fe55e4aa1df3fefd9ebef91f93c830cf66dcd9150610587565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610587565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b63e4220d1e821015610664578163c6f7953781146105d65763c7f62cda81146105f25763d245d983811461060e5763d83eb231811461062a5763e1425cf581146106465761065e565b739c28b86b2eac76f0d83298a574bcec1557ed202a915061065e565b738a0221cabe12b3c8ba33ab13397ddc575da1ccc1915061065e565b739c28b86b2eac76f0d83298a574bcec1557ed202a915061065e565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d8915061065e565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b5061072b565b8163e4220d1e81146106a15763e549a29081146106bd5763ee7d72b481146106d95763fb5e80d881146106f55763ffe7f643811461071157610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d89150610729565b73cc6cfb3993c539dc2b7bbb686ea7f06c516923d891505b505b919050565b61073981610035565b9150505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107ac57816040517fc2a825f50000000000000000000000000000000000000000000000000000000081526004016107a39190610805565b60405180910390fd5b365f80375f80365f845af43d5f803e805f81146107c7573d5ff35b3d5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6107ff816107cb565b82525050565b5f6020820190506108185f8301846107f6565b9291505056fea26469706673582212201b8e9c48e6f99e98ec8ade678fc580075c69ae5b88a4e06da4c09c628087e62264736f6c634300081a0033

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

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.