Amoy Testnet

Contract

0xFCf5EC051E9D8858606ED7b66E33e039c59C14D5

Overview

POL Balance

Polygon PoS Chain Amoy LogoPolygon PoS Chain Amoy LogoPolygon PoS Chain Amoy Logo0.01 POL

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Change Admin180979092025-02-15 8:58:2632 hrs ago1739609906IN
0xFCf5EC05...9c59C14D5
0 POL0.0007456225.55864378
Admin180978872025-02-15 8:57:3832 hrs ago1739609858IN
0xFCf5EC05...9c59C14D5
0 POL0.0009001731.3999663
Upgrade To162070312024-12-29 15:33:2549 days ago1735486405IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162069602024-12-29 15:30:5549 days ago1735486255IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162068472024-12-29 15:26:5349 days ago1735486013IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
_update Automate162067692024-12-29 15:24:0949 days ago1735485849IN
0xFCf5EC05...9c59C14D5
0 POL0.0037976550
Upgrade To162067442024-12-29 15:23:1549 days ago1735485795IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162065782024-12-29 15:17:2349 days ago1735485443IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162065112024-12-29 15:14:5949 days ago1735485299IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162063332024-12-29 15:08:4149 days ago1735484921IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162059002024-12-29 14:53:2149 days ago1735484001IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162056042024-12-29 14:42:5349 days ago1735483373IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162054662024-12-29 14:37:5949 days ago1735483079IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162052772024-12-29 14:31:1749 days ago1735482677IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Limit Order162048112024-12-29 14:14:4749 days ago1735481687IN
0xFCf5EC05...9c59C14D5
0 POL0.0016809550
Upgrade To162047492024-12-29 14:12:3549 days ago1735481555IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Create Task162041862024-12-29 13:52:3949 days ago1735480359IN
0xFCf5EC05...9c59C14D5
0.01 POL0.0503867550
Upgrade To162041682024-12-29 13:52:0149 days ago1735480321IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Upgrade To162040602024-12-29 13:48:1149 days ago1735480091IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550
Create Task162040092024-12-29 13:46:2349 days ago1735479983IN
0xFCf5EC05...9c59C14D5
0.01 POL0.005168850
Upgrade To162039942024-12-29 13:45:5149 days ago1735479951IN
0xFCf5EC05...9c59C14D5
0 POL0.0016370550

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x00DA1e08...cB4d5de6e
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
LogProxy

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : LogProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.13;

abstract contract Proxy {
    function _delegate(address implementation) internal virtual {
        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 _implementation() internal view virtual returns (address);

    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    fallback() external payable virtual {
        _fallback();
    }

    receive() external payable virtual {
        _fallback();
    }

    function _beforeFallback() internal virtual {}
}

abstract contract UpgradeableProxy is Proxy {
    event Upgraded(address indexed implementation);

    function _upgradeTo(address newImplementation) internal virtual {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    function _setImplementation(address newImplementation) private {
        require(
            Address.isContract(newImplementation),
            "UpgradeableProxy: new implementation is not a contract"
        );

        bytes32 slot = _IMPLEMENTATION_SLOT;

        assembly {
            sstore(slot, newImplementation)
        }
    }

    function _implementation()
        internal
        view
        virtual
        override
        returns (address impl)
    {
        bytes32 slot = _IMPLEMENTATION_SLOT;
        assembly {
            impl := sload(slot)
        }
    }

    bytes32 private constant _IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
}

contract TransparentUpgradeableProxy is UpgradeableProxy {
    event AdminChanged(address previousAdmin, address newAdmin);

    constructor(address _logic, address admin_, bytes memory _data) payable {
        assert(
            _ADMIN_SLOT ==
                bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1)
        );
        _setAdmin(admin_);
        _upgradeTo(_logic);
        if (_data.length > 0) {
            (bool success, ) = _logic.delegatecall(_data);
            require(
                success,
                "TransparentUpgradeableProxy: initialization failed"
            );
        }
    }

    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    function admin() external ifAdmin returns (address) {
        return _admin();
    }

    function implementation() external ifAdmin returns (address) {
        return _implementation();
    }

    function changeAdmin(address newAdmin) external virtual ifAdmin {
        require(
            newAdmin != address(0),
            "TransparentUpgradeableProxy: new admin is the zero address"
        );
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    function upgradeToAndCall(
        address newImplementation,
        bytes calldata data
    ) external payable ifAdmin {
        _upgradeTo(newImplementation);
        (bool success, ) = newImplementation.delegatecall(data);
        require(success, "TransparentUpgradeableProxy: call failed");
    }

    function _admin() internal view virtual returns (address) {
        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;
    }

    function _setAdmin(address newAdmin) private {
        require(
            newAdmin != address(0),
            "TransparentUpgradeableProxy: new admin is the zero address"
        );
        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;
    }

    function _beforeFallback() internal virtual override {
        require(
            msg.sender != _admin(),
            "TransparentUpgradeableProxy: admin cannot fallback to proxy target"
        );
        super._beforeFallback();
    }

    bytes32 private constant _ADMIN_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
}

contract LogProxy is TransparentUpgradeableProxy {
    constructor(
        address _logic,
        address admin_,
        bytes memory _data
    ) TransparentUpgradeableProxy(_logic, admin_, _data) {}
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
}

library StorageSlot {
    struct AddressSlot {
        address value;
    }

    function getAddressSlot(
        bytes32 slot
    ) internal pure returns (AddressSlot storage r) {
        assembly {
            r.slot := slot
        }
    }
}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b61008036600461058d565b610138565b61005b6100933660046105af565b610163565b3480156100a457600080fd5b506100ad610259565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e436600461058d565b6102a5565b3480156100f557600080fd5b506100ad610336565b610106610357565b6101366101317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6103e7565b565b61014061040b565b6001600160a01b0316330361015b5761015881610439565b50565b6101586100fe565b61016b61040b565b6001600160a01b0316330361024c5761018383610439565b6000836001600160a01b0316838360405161019f929190610634565b600060405180830381855af49150503d80600081146101da576040519150601f19603f3d011682016040523d82523d6000602084013e6101df565b606091505b50509050806102465760405162461bcd60e51b815260206004820152602860248201527f5472616e73706172656e745570677261646561626c6550726f78793a2063616c6044820152671b0819985a5b195960c21b60648201526084015b60405180910390fd5b50505050565b6102546100fe565b505050565b600061026361040b565b6001600160a01b0316330361029a577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545b905090565b6102a26100fe565b90565b6102ad61040b565b6001600160a01b0316330361015b576001600160a01b0381166102e25760405162461bcd60e51b815260040161023d90610644565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61030b61040b565b604080516001600160a01b03928316815291841660208301520160405180910390a161015881610479565b600061034061040b565b6001600160a01b0316330361029a5761029561040b565b61035f61040b565b6001600160a01b031633036101365760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a40161023d565b3660008037600080366000845af43d6000803e808015610406573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b031690565b610442816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b03811661049f5760405162461bcd60e51b815260040161023d90610644565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380546001600160a01b0319166001600160a01b0392909216919091179055565b803b61054d5760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e74616044820152751d1a5bdb881a5cc81b9bdd08184818dbdb9d1c9858dd60521b606482015260840161023d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b80356001600160a01b038116811461058857600080fd5b919050565b60006020828403121561059f57600080fd5b6105a882610571565b9392505050565b6000806000604084860312156105c457600080fd5b6105cd84610571565b9250602084013567ffffffffffffffff8111156105e957600080fd5b8401601f810186136105fa57600080fd5b803567ffffffffffffffff81111561061157600080fd5b86602082840101111561062357600080fd5b939660209190910195509293505050565b8183823760009101908152919050565b6020808252603a908201527f5472616e73706172656e745570677261646561626c6550726f78793a206e657760408201527f2061646d696e20697320746865207a65726f206164647265737300000000000060608201526080019056fea2646970667358221220e69e0facf2c3b558c62b8ae9fb9802ee05c9b7bdc980300eb727a699eba03c6064736f6c634300081a0033

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  ]

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.