ETH Price: $1,932.61 (-4.07%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set L1Governance189668472024-01-09 3:49:59780 days ago1704772199IN
0x8EBccb28...aA8039da4
0 ETH0.0009382615.61480842
Set Amm Wrapper189380212024-01-05 2:10:23784 days ago1704420623IN
0x8EBccb28...aA8039da4
0 ETH0.0016694427.79304083
Add Active Chain...189380182024-01-05 2:09:47784 days ago1704420587IN
0x8EBccb28...aA8039da4
0 ETH0.0016373926.44586959
Set L1Bridge Cal...189380162024-01-05 2:09:23784 days ago1704420563IN
0x8EBccb28...aA8039da4
0 ETH0.0018015226.72810423
Initialize189379742024-01-05 2:00:59784 days ago1704420059IN
0x8EBccb28...aA8039da4
0 ETH0.0031191834.66874936

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PolygonzkConnector

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 50000 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

import "../interfaces/polygonzk/messengers/IPolygonZkEVMBridge.sol";
import "./Connector.sol";

contract PolygonzkConnector is Connector {

    uint32 public counterpartNetwork;
    address public messengerAddress;

    function initialize(
        address target,
        address counterpart,
        uint32 _counterpartNetwork,
        address _messengerAddress
    ) external {
        initialize(target, counterpart);

        counterpartNetwork = _counterpartNetwork;
        messengerAddress = _messengerAddress;
    }

    function onMessageReceived(
        address originAddress,
        uint32 originNetwork,
        bytes memory data
    ) external {
        require(originAddress == counterpart, "PLY_ZK_CNR: Origin address does not match counterpart address");
        require(originNetwork == counterpartNetwork, "PLY_ZK_CNR: Origin network does not match counterpart network");
        require(msg.sender == messengerAddress, "PLY_ZK_CNR: Caller is not the messenger");

        uint256 value = 0;
        target.execute(data, value);
    }

    /* ========== Internal functions ========== */

    function _forwardCrossDomainMessage() internal override {
        _forwardCrossDomainMessage(msg.data);
    }

    function _forwardCrossDomainMessage(bytes memory data) internal {
        require(msg.sender == target, "PLY_ZK_CNR: Caller is not the expected sender");

        bool forceUpdateGlobalExitRoot = false;
        IPolygonZkEVMBridge(messengerAddress).bridgeMessage(
            counterpartNetwork,
            counterpart,
            forceUpdateGlobalExitRoot,
            data
        );
    }

    function _verifyCrossDomainSender() internal override {
        revert("BASE_PLY_ZK_CNR: _verifyCrossDomainSender() is handled by onMessageReceived");
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

import "../libraries/ExecutorLib.sol";
import "../shared/Initializable.sol";

abstract contract Connector is Initializable {
    using ExecutorLib for address;

    address public target;
    address public counterpart;

    /// @dev initialize to keep creation code consistent for create2 deployments
    function initialize(address _target, address _counterpart) public initializer {
        require(_target != address(0), "CNR: Target cannot be zero address");
        require(_counterpart != address(0), "CNR: Counterpart cannot be zero address");

        target = _target;
        counterpart = _counterpart;
    }

    fallback () external payable {
        if (msg.sender == target) {
            _forwardCrossDomainMessage();
        } else {
            _verifyCrossDomainSender();
            target.execute(msg.data, msg.value);
        }
    }

    receive () external payable {
        revert("Do not send ETH to this contract");
    }

    /* ========== Virtual functions ========== */

    function _forwardCrossDomainMessage() internal virtual;

    function _verifyCrossDomainSender() internal virtual;
}

File 3 of 5 : IPolygonZkEVMBridge.sol
// SPDX-License-Identifier: AGPL-3.0

pragma solidity 0.6.12;

interface IPolygonZkEVMBridge {
    function bridgeMessage(
        uint32 destinationNetwork,
        address destinationAddress,
        bool forceUpdateGlobalExitRoot,
        bytes calldata metadata
    ) external payable;
}

File 4 of 5 : ExecutorLib.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

library ExecutorLib {
    function execute(
        address to,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        (bool success, bytes memory res) = payable(to).call{value: value}(data);
        if (!success) {
            // Bubble up error message
            assembly { revert(add(res,0x20), res) }
        }
        return res;
    }
}

File 5 of 5 : Initializable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

contract Initializable {
    bool initialized;

    modifier initializer() {
        require(!initialized, "Initializable: contract is already initialized");
        initialized = true;
        _;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"counterpart","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"counterpartNetwork","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_counterpart","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"counterpart","type":"address"},{"internalType":"uint32","name":"_counterpartNetwork","type":"uint32"},{"internalType":"address","name":"_messengerAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"messengerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"originAddress","type":"address"},{"internalType":"uint32","name":"originNetwork","type":"uint32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onMessageReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50610e47806100206000396000f3fe6080604052600436106100745760003560e01c8063a224ee9c1161004e578063a224ee9c146101bc578063b0138132146101d1578063d4b83992146101f3578063ed1f266814610208576100b4565b80631806b5f214610151578063485cc95514610171578063797594b014610191576100b4565b366100b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610a9e565b60405180910390fd5b600054610100900473ffffffffffffffffffffffffffffffffffffffff163314156100e6576100e1610228565b61014f565b6100ee61026a565b61014d6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052505473ffffffffffffffffffffffffffffffffffffffff610100909104169392503491505061029c565b505b005b34801561015d57600080fd5b5061014f61016c3660046108cb565b610324565b34801561017d57600080fd5b5061014f61018c366004610834565b610456565b34801561019d57600080fd5b506101a66105cc565b6040516101b391906109c3565b60405180910390f35b3480156101c857600080fd5b506101a66105e8565b3480156101dd57600080fd5b506101e6610604565b6040516101b39190610d27565b3480156101ff57600080fd5b506101a6610628565b34801561021457600080fd5b5061014f610223366004610868565b610649565b6102686000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106eb92505050565b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610c47565b6060600060608573ffffffffffffffffffffffffffffffffffffffff1684866040516102c891906109a7565b60006040518083038185875af1925050503d8060008114610305576040519150601f19603f3d011682016040523d82523d6000602084013e61030a565b606091505b50915091508161031b578060208201fd5b95945050505050565b60015473ffffffffffffffffffffffffffffffffffffffff848116911614610378576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab906109e4565b60015463ffffffff8381167401000000000000000000000000000000000000000090920416146103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610a41565b60025473ffffffffffffffffffffffffffffffffffffffff163314610425576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610b8d565b6000805461044f90610100900473ffffffffffffffffffffffffffffffffffffffff16838361029c565b5050505050565b60005460ff1615610493576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610ad3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905573ffffffffffffffffffffffffffffffffffffffff821661050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610bea565b73ffffffffffffffffffffffffffffffffffffffff8116610558576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610cca565b600080547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff94851602179055600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900463ffffffff1681565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6106538484610456565b6001805463ffffffff90931674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff909316929092179091556002805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790555050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff163314610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610b30565b6002546001546040517f240ff37800000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff9081169263240ff378926107c09263ffffffff7401000000000000000000000000000000000000000084041692169086908890600401610d38565b600060405180830381600087803b1580156107da57600080fd5b505af11580156107ee573d6000803e3d6000fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461081a57600080fd5b92915050565b803563ffffffff8116811461081a57600080fd5b60008060408385031215610846578182fd5b61085084846107f6565b915061085f84602085016107f6565b90509250929050565b6000806000806080858703121561087d578182fd5b843561088881610dec565b9350602085013561089881610dec565b9250604085013563ffffffff811681146108b0578283fd5b915060608501356108c081610dec565b939692955090935050565b6000806000606084860312156108df578283fd5b6108e985856107f6565b925060206108f986828701610820565b9250604085013567ffffffffffffffff80821115610915578384fd5b818701915087601f830112610928578384fd5b813581811115610936578485fd5b604051847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715610973578687fd5b60405281815283820185018a1015610989578586fd5b81858501868301378585838301015280955050505050509250925092565b600082516109b9818460208701610dbc565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252603d908201527f504c595f5a4b5f434e523a204f726967696e206164647265737320646f65732060408201527f6e6f74206d6174636820636f756e746572706172742061646472657373000000606082015260800190565b6020808252603d908201527f504c595f5a4b5f434e523a204f726967696e206e6574776f726b20646f65732060408201527f6e6f74206d6174636820636f756e74657270617274206e6574776f726b000000606082015260800190565b6020808252818101527f446f206e6f742073656e642045544820746f207468697320636f6e7472616374604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201527f647920696e697469616c697a6564000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f504c595f5a4b5f434e523a2043616c6c6572206973206e6f742074686520657860408201527f7065637465642073656e64657200000000000000000000000000000000000000606082015260800190565b60208082526027908201527f504c595f5a4b5f434e523a2043616c6c6572206973206e6f7420746865206d6560408201527f7373656e67657200000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f434e523a205461726765742063616e6e6f74206265207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252604b908201527f424153455f504c595f5a4b5f434e523a205f76657269667943726f7373446f6d60408201527f61696e53656e64657228292069732068616e646c6564206279206f6e4d65737360608201527f6167655265636569766564000000000000000000000000000000000000000000608082015260a00190565b60208082526027908201527f434e523a20436f756e746572706172742063616e6e6f74206265207a65726f2060408201527f6164647265737300000000000000000000000000000000000000000000000000606082015260800190565b63ffffffff91909116815260200190565b600063ffffffff8616825273ffffffffffffffffffffffffffffffffffffffff851660208301528315156040830152608060608301528251806080840152610d878160a0850160208701610dbc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160a00195945050505050565b60005b83811015610dd7578181015183820152602001610dbf565b83811115610de6576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e0e57600080fd5b5056fea26469706673582212208583cb330d4c62f212baf00ae3058dc912f16474f704e35bf5b6cea6b1ad715c64736f6c634300060c0033

Deployed Bytecode

0x6080604052600436106100745760003560e01c8063a224ee9c1161004e578063a224ee9c146101bc578063b0138132146101d1578063d4b83992146101f3578063ed1f266814610208576100b4565b80631806b5f214610151578063485cc95514610171578063797594b014610191576100b4565b366100b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610a9e565b60405180910390fd5b600054610100900473ffffffffffffffffffffffffffffffffffffffff163314156100e6576100e1610228565b61014f565b6100ee61026a565b61014d6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052505473ffffffffffffffffffffffffffffffffffffffff610100909104169392503491505061029c565b505b005b34801561015d57600080fd5b5061014f61016c3660046108cb565b610324565b34801561017d57600080fd5b5061014f61018c366004610834565b610456565b34801561019d57600080fd5b506101a66105cc565b6040516101b391906109c3565b60405180910390f35b3480156101c857600080fd5b506101a66105e8565b3480156101dd57600080fd5b506101e6610604565b6040516101b39190610d27565b3480156101ff57600080fd5b506101a6610628565b34801561021457600080fd5b5061014f610223366004610868565b610649565b6102686000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506106eb92505050565b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610c47565b6060600060608573ffffffffffffffffffffffffffffffffffffffff1684866040516102c891906109a7565b60006040518083038185875af1925050503d8060008114610305576040519150601f19603f3d011682016040523d82523d6000602084013e61030a565b606091505b50915091508161031b578060208201fd5b95945050505050565b60015473ffffffffffffffffffffffffffffffffffffffff848116911614610378576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab906109e4565b60015463ffffffff8381167401000000000000000000000000000000000000000090920416146103d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610a41565b60025473ffffffffffffffffffffffffffffffffffffffff163314610425576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610b8d565b6000805461044f90610100900473ffffffffffffffffffffffffffffffffffffffff16838361029c565b5050505050565b60005460ff1615610493576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610ad3565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905573ffffffffffffffffffffffffffffffffffffffff821661050b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610bea565b73ffffffffffffffffffffffffffffffffffffffff8116610558576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610cca565b600080547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff94851602179055600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900463ffffffff1681565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6106538484610456565b6001805463ffffffff90931674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff909316929092179091556002805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790555050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff163314610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ab90610b30565b6002546001546040517f240ff37800000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff9081169263240ff378926107c09263ffffffff7401000000000000000000000000000000000000000084041692169086908890600401610d38565b600060405180830381600087803b1580156107da57600080fd5b505af11580156107ee573d6000803e3d6000fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461081a57600080fd5b92915050565b803563ffffffff8116811461081a57600080fd5b60008060408385031215610846578182fd5b61085084846107f6565b915061085f84602085016107f6565b90509250929050565b6000806000806080858703121561087d578182fd5b843561088881610dec565b9350602085013561089881610dec565b9250604085013563ffffffff811681146108b0578283fd5b915060608501356108c081610dec565b939692955090935050565b6000806000606084860312156108df578283fd5b6108e985856107f6565b925060206108f986828701610820565b9250604085013567ffffffffffffffff80821115610915578384fd5b818701915087601f830112610928578384fd5b813581811115610936578485fd5b604051847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715610973578687fd5b60405281815283820185018a1015610989578586fd5b81858501868301378585838301015280955050505050509250925092565b600082516109b9818460208701610dbc565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252603d908201527f504c595f5a4b5f434e523a204f726967696e206164647265737320646f65732060408201527f6e6f74206d6174636820636f756e746572706172742061646472657373000000606082015260800190565b6020808252603d908201527f504c595f5a4b5f434e523a204f726967696e206e6574776f726b20646f65732060408201527f6e6f74206d6174636820636f756e74657270617274206e6574776f726b000000606082015260800190565b6020808252818101527f446f206e6f742073656e642045544820746f207468697320636f6e7472616374604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201527f647920696e697469616c697a6564000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f504c595f5a4b5f434e523a2043616c6c6572206973206e6f742074686520657860408201527f7065637465642073656e64657200000000000000000000000000000000000000606082015260800190565b60208082526027908201527f504c595f5a4b5f434e523a2043616c6c6572206973206e6f7420746865206d6560408201527f7373656e67657200000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f434e523a205461726765742063616e6e6f74206265207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252604b908201527f424153455f504c595f5a4b5f434e523a205f76657269667943726f7373446f6d60408201527f61696e53656e64657228292069732068616e646c6564206279206f6e4d65737360608201527f6167655265636569766564000000000000000000000000000000000000000000608082015260a00190565b60208082526027908201527f434e523a20436f756e746572706172742063616e6e6f74206265207a65726f2060408201527f6164647265737300000000000000000000000000000000000000000000000000606082015260800190565b63ffffffff91909116815260200190565b600063ffffffff8616825273ffffffffffffffffffffffffffffffffffffffff851660208301528315156040830152608060608301528251806080840152610d878160a0850160208701610dbc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160a00195945050505050565b60005b83811015610dd7578181015183820152602001610dbf565b83811115610de6576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610e0e57600080fd5b5056fea26469706673582212208583cb330d4c62f212baf00ae3058dc912f16474f704e35bf5b6cea6b1ad715c64736f6c634300060c0033

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