S Price: $0.478567 (+6.10%)

Contract

0x3965E1e2863C2fE7201C9FDF26C53c779D061885

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer133712182025-03-13 2:57:068 hrs ago1741834626IN
0x3965E1e2...79D061885
1 S0.0065309150.0001
Transfer132156302025-03-12 9:01:0526 hrs ago1741770065IN
0x3965E1e2...79D061885
1 S0.0065309150.0001
Set Admin131942312025-03-12 6:29:1628 hrs ago1741760956IN
0x3965E1e2...79D061885
0 S0.0015379155
0x1f398b63131941952025-03-12 6:28:5428 hrs ago1741760934IN
0x3965E1e2...79D061885
0 S0.0177114355
Set Op Gas Token...131941892025-03-12 6:28:5128 hrs ago1741760931IN
0x3965E1e2...79D061885
0 S0.0053236755
Add Executor131941842025-03-12 6:28:4828 hrs ago1741760928IN
0x3965E1e2...79D061885
0 S0.002869955
Add Executor131941782025-03-12 6:28:4628 hrs ago1741760926IN
0x3965E1e2...79D061885
0 S0.002869955
Set Gateways131941742025-03-12 6:28:4328 hrs ago1741760923IN
0x3965E1e2...79D061885
0 S0.0053386855
Set Implementati...131913952025-03-12 6:06:2829 hrs ago1741759588IN
0x3965E1e2...79D061885
0 S0.0025895655

Latest 4 internal transactions

Parent Transaction Hash Block From To
133712182025-03-13 2:57:068 hrs ago1741834626
0x3965E1e2...79D061885
1 S
133712182025-03-13 2:57:068 hrs ago1741834626
0x3965E1e2...79D061885
 Contract Creation0 S
132156302025-03-12 9:01:0526 hrs ago1741770065
0x3965E1e2...79D061885
1 S
132156302025-03-12 9:01:0526 hrs ago1741770065
0x3965E1e2...79D061885
 Contract Creation0 S
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Manager

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : Manager.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

import './ManagerStorage.sol';

contract Manager is ManagerStorage {

    fallback() external payable {
        address imp = implementation;
        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), imp, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    receive() external payable {
        address imp = implementation;
        assembly {
            let result := delegatecall(gas(), imp, 0, 0, 0, 0)
            if eq(result, 0) { revert(0, 0) }
        }
    }

}

File 2 of 4 : ManagerStorage.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

import '../utils/Admin.sol';
import '../utils/Implementation.sol';

abstract contract ManagerStorage is Admin, Implementation {

    address[] internal _gateways;

    mapping (address => bool) internal _executors;

    mapping (address => address) internal _smartAccounts;

    address[] internal _opGasTokens;

    uint256[6][] internal _opGases;

}

File 3 of 4 : Admin.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

abstract contract Admin {

    error OnlyAdmin();

    event NewAdmin(address newAdmin);

    address public admin;

    modifier _onlyAdmin_() {
        if (msg.sender != admin) {
            revert OnlyAdmin();
        }
        _;
    }

    constructor () {
        admin = msg.sender;
        emit NewAdmin(admin);
    }

    /**
     * @notice Set a new admin for the contract.
     * @dev This function allows the current admin to assign a new admin address without performing any explicit verification.
     *      It's the current admin's responsibility to ensure that the 'newAdmin' address is correct and secure.
     * @param newAdmin The address of the new admin.
     */
    function setAdmin(address newAdmin) external _onlyAdmin_ {
        admin = newAdmin;
        emit NewAdmin(newAdmin);
    }

}

File 4 of 4 : Implementation.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0 <0.9.0;

import './Admin.sol';

abstract contract Implementation is Admin {

    event NewImplementation(address newImplementation);

    address public implementation;

    // @notice Set a new implementation address for the contract
    function setImplementation(address newImplementation) external _onlyAdmin_ {
        implementation = newImplementation;
        emit NewImplementation(newImplementation);
    }

}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"name":"OnlyAdmin","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50600080546001600160a01b031916339081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c9060200160405180910390a1610293806100686000396000f3fe6080604052600436106100435760003560e01c80635c60da1b14610098578063704b6c02146100d4578063d784d426146100f4578063f851a4401461011457610068565b36610068576001546001600160a01b03166000808080845af48061006657600080fd5b005b6001546001600160a01b03163660008037600080366000845af43d6000803e808015610093573d6000f35b3d6000fd5b3480156100a457600080fd5b506001546100b8906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e057600080fd5b506100666100ef36600461022d565b610134565b34801561010057600080fd5b5061006661010f36600461022d565b6101b4565b34801561012057600080fd5b506000546100b8906001600160a01b031681565b6000546001600160a01b0316331461015f57604051634755657960e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c906020015b60405180910390a150565b6000546001600160a01b031633146101df57604051634755657960e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f6b70829fcbe4891157f7a7496f9870927de3c8237adbe9cd39bae09b7382c409906020016101a9565b60006020828403121561023f57600080fd5b81356001600160a01b038116811461025657600080fd5b939250505056fea26469706673582212203afe3f16eaf64826a2966bca03f649745c7c3451963cc8b6953fbd6a5e7bb54f64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106100435760003560e01c80635c60da1b14610098578063704b6c02146100d4578063d784d426146100f4578063f851a4401461011457610068565b36610068576001546001600160a01b03166000808080845af48061006657600080fd5b005b6001546001600160a01b03163660008037600080366000845af43d6000803e808015610093573d6000f35b3d6000fd5b3480156100a457600080fd5b506001546100b8906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e057600080fd5b506100666100ef36600461022d565b610134565b34801561010057600080fd5b5061006661010f36600461022d565b6101b4565b34801561012057600080fd5b506000546100b8906001600160a01b031681565b6000546001600160a01b0316331461015f57604051634755657960e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c906020015b60405180910390a150565b6000546001600160a01b031633146101df57604051634755657960e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f6b70829fcbe4891157f7a7496f9870927de3c8237adbe9cd39bae09b7382c409906020016101a9565b60006020828403121561023f57600080fd5b81356001600160a01b038116811461025657600080fd5b939250505056fea26469706673582212203afe3f16eaf64826a2966bca03f649745c7c3451963cc8b6953fbd6a5e7bb54f64736f6c63430008140033

Block Transaction 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
[ 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.