ETH Price: $3,266.96 (+0.62%)

Contract

0x023A2aAc5d0fa69E3243994672822BA43E34E5C9
 

Overview

ETH Balance

0.000100010619998957 ETH

Eth Value

$0.33 (@ $3,266.96/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deposit215938742025-01-10 11:47:5928 hrs ago1736509679IN
0x023A2aAc...43E34E5C9
0 ETH0.000628255.83583306
Deposit215913382025-01-10 3:16:4737 hrs ago1736479007IN
0x023A2aAc...43E34E5C9
0 ETH0.000453234.40502034
Deposit215883422025-01-09 17:14:4747 hrs ago1736442887IN
0x023A2aAc...43E34E5C9
0 ETH0.0012569512.81569815
Withdraw215815942025-01-08 18:36:592 days ago1736361419IN
0x023A2aAc...43E34E5C9
0 ETH0.001184218.26060697
Deposit215770762025-01-08 3:29:593 days ago1736306999IN
0x023A2aAc...43E34E5C9
0 ETH0.000556065.16467386
Deposit215757792025-01-07 23:08:353 days ago1736291315IN
0x023A2aAc...43E34E5C9
0 ETH0.000911188.85686536
Withdraw215748112025-01-07 19:54:113 days ago1736279651IN
0x023A2aAc...43E34E5C9
0 ETH0.0015024521.57153104
Withdraw215747202025-01-07 19:35:593 days ago1736278559IN
0x023A2aAc...43E34E5C9
0 ETH0.0012333219.01453327
Deposit215696222025-01-07 2:31:474 days ago1736217107IN
0x023A2aAc...43E34E5C9
0 ETH0.000803737.4641721
Withdraw215624652025-01-06 2:32:235 days ago1736130743IN
0x023A2aAc...43E34E5C9
0 ETH0.000433746.68720072
Withdraw215594332025-01-05 16:20:356 days ago1736094035IN
0x023A2aAc...43E34E5C9
0 ETH0.0007132910.24108958
Deposit215591012025-01-05 15:13:596 days ago1736090039IN
0x023A2aAc...43E34E5C9
0 ETH0.0015484214.37998135
Withdraw215573782025-01-05 9:27:476 days ago1736069267IN
0x023A2aAc...43E34E5C9
0 ETH0.000401494.9
Deposit215543612025-01-04 23:20:356 days ago1736032835IN
0x023A2aAc...43E34E5C9
0 ETH0.000537924.99617059
Deposit215543242025-01-04 23:13:116 days ago1736032391IN
0x023A2aAc...43E34E5C9
1 wei0.000817327.94268735
Deposit215491732025-01-04 5:57:597 days ago1735970279IN
0x023A2aAc...43E34E5C9
0 ETH0.000501644.6592399
Deposit215455872025-01-03 17:56:117 days ago1735926971IN
0x023A2aAc...43E34E5C9
0 ETH0.001803118.38418402
Withdraw215415592025-01-03 4:26:478 days ago1735878407IN
0x023A2aAc...43E34E5C9
0 ETH0.000626537.64538414
Deposit215415092025-01-03 4:16:478 days ago1735877807IN
0x023A2aAc...43E34E5C9
0 ETH0.000641715.96017568
Deposit215415042025-01-03 4:15:478 days ago1735877747IN
0x023A2aAc...43E34E5C9
0 ETH0.00074886.95405994
Deposit215373022025-01-02 14:12:119 days ago1735827131IN
0x023A2aAc...43E34E5C9
0 ETH0.0014453314.04887183
Deposit215365332025-01-02 11:37:599 days ago1735817879IN
0x023A2aAc...43E34E5C9
0 ETH0.0012355712.00993572
Deposit215360782025-01-02 10:06:119 days ago1735812371IN
0x023A2aAc...43E34E5C9
0 ETH0.0015338514.90934411
Deposit215359942025-01-02 9:49:119 days ago1735811351IN
0x023A2aAc...43E34E5C9
0 ETH0.0012554112.2
Deposit215306812025-01-01 16:01:3510 days ago1735747295IN
0x023A2aAc...43E34E5C9
0 ETH0.0034366635.04409265
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
215938742025-01-10 11:47:5928 hrs ago1736509679
0x023A2aAc...43E34E5C9
1 wei
215913382025-01-10 3:16:4737 hrs ago1736479007
0x023A2aAc...43E34E5C9
1 wei
215883422025-01-09 17:14:4747 hrs ago1736442887
0x023A2aAc...43E34E5C9
1 wei
215770762025-01-08 3:29:593 days ago1736306999
0x023A2aAc...43E34E5C9
1 wei
215757792025-01-07 23:08:353 days ago1736291315
0x023A2aAc...43E34E5C9
1 wei
215696222025-01-07 2:31:474 days ago1736217107
0x023A2aAc...43E34E5C9
1 wei
215591012025-01-05 15:13:596 days ago1736090039
0x023A2aAc...43E34E5C9
1 wei
215543612025-01-04 23:20:356 days ago1736032835
0x023A2aAc...43E34E5C9
1 wei
215543242025-01-04 23:13:116 days ago1736032391
0x023A2aAc...43E34E5C9
1 wei
215491732025-01-04 5:57:597 days ago1735970279
0x023A2aAc...43E34E5C9
1 wei
215455872025-01-03 17:56:117 days ago1735926971
0x023A2aAc...43E34E5C9
1 wei
215415092025-01-03 4:16:478 days ago1735877807
0x023A2aAc...43E34E5C9
1 wei
215415042025-01-03 4:15:478 days ago1735877747
0x023A2aAc...43E34E5C9
1 wei
215373022025-01-02 14:12:119 days ago1735827131
0x023A2aAc...43E34E5C9
1 wei
215365332025-01-02 11:37:599 days ago1735817879
0x023A2aAc...43E34E5C9
1 wei
215360782025-01-02 10:06:119 days ago1735812371
0x023A2aAc...43E34E5C9
1 wei
215359942025-01-02 9:49:119 days ago1735811351
0x023A2aAc...43E34E5C9
1 wei
215306812025-01-01 16:01:3510 days ago1735747295
0x023A2aAc...43E34E5C9
1 wei
215270042025-01-01 3:43:2310 days ago1735703003
0x023A2aAc...43E34E5C9
1 wei
215257162024-12-31 23:24:5910 days ago1735687499
0x023A2aAc...43E34E5C9
1 wei
215179582024-12-30 21:24:2311 days ago1735593863
0x023A2aAc...43E34E5C9
1 wei
215119632024-12-30 1:18:4712 days ago1735521527
0x023A2aAc...43E34E5C9
1 wei
215084272024-12-29 13:28:3513 days ago1735478915
0x023A2aAc...43E34E5C9
1 wei
215046992024-12-29 0:59:4713 days ago1735433987
0x023A2aAc...43E34E5C9
1 wei
215042932024-12-28 23:38:2313 days ago1735429103
0x023A2aAc...43E34E5C9
1 wei
View All Internal Transactions
Loading...
Loading

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

Contract Name:
LordsL1Bridge

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : bridge.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC20Like {
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool success);
}

interface IStarknetCore {
    /**
      Sends a message to an L2 contract.

      Returns the hash of the message.
    */
    function sendMessageToL2(
        uint256 toAddress,
        uint256 selector,
        uint256[] calldata payload
    ) external payable returns (bytes32);

    /**
      Consumes a message that was sent from an L2 contract.

      Returns the hash of the message.
    */
    function consumeMessageFromL2(
        uint256 fromAddress,
        uint256[] calldata payload
    ) external returns (bytes32);
}

contract LordsL1Bridge {
    /// @notice The Starknet Core contract address on L1
    address public immutable starknet;

    /// @notice The $LORDS ERC20 contract address on L1
    address public immutable l1Token;

    /// @notice The L2 address of the $LORDS bridge, the counterpart to this contract
    uint256 public immutable l2Bridge;

    event LogDeposit(
        address indexed l1Sender,
        uint256 amount,
        uint256 l2Recipient
    );
    event LogWithdrawal(address indexed l1Recipient, uint256 amount);

    // 2 ** 251 + 17 * 2 ** 192 + 1;
    uint256 private constant CAIRO_PRIME =
        3618502788666131213697322783095070105623107215331596699973092056135872020481;

    // from starkware.starknet.compiler.compile import get_selector_from_name
    // print(get_selector_from_name('handle_deposit'))
    uint256 private constant DEPOSIT_SELECTOR =
        1285101517810983806491589552491143496277809242732141897358598292095611420389;

    // operation ID sent in the L2 -> L1 message
    uint256 private constant PROCESS_WITHDRAWAL = 1;

    function splitUint256(uint256 value)
        internal
        pure
        returns (uint256, uint256)
    {
        uint256 low = value & ((1 << 128) - 1);
        uint256 high = value >> 128;
        return (low, high);
    }

    constructor(
        address _starknet,
        address _l1Token,
        uint256 _l2Bridge
    ) {
        require(_l2Bridge < CAIRO_PRIME, "Invalid L2 bridge address");

        starknet = _starknet;
        l1Token = _l1Token;
        l2Bridge = _l2Bridge;
    }

    /// @notice Function used to bridge $LORDS from L1 to L2
    /// @param amount How many $LORDS to send from msg.sender
    /// @param l2Recipient To which L2 address should we deposit the $LORDS to
    /// @param fee Compulsory fee paid to the sequencer for passing on the message
    function deposit(uint256 amount, uint256 l2Recipient, uint256 fee) external payable {
        require(amount > 0, "Amount is 0");
        require(
            l2Recipient != 0 &&
            l2Recipient != l2Bridge &&
            l2Recipient < CAIRO_PRIME,
            "Invalid L2 recipient"
        );

        uint256[] memory payload = new uint256[](3);
        payload[0] = l2Recipient;
        (payload[1], payload[2]) = splitUint256(amount);

        IERC20Like(l1Token).transferFrom(msg.sender, address(this), amount);
        IStarknetCore(starknet).sendMessageToL2{value: fee}(
            l2Bridge,
            DEPOSIT_SELECTOR,
            payload
        );

        emit LogDeposit(msg.sender, amount, l2Recipient);
    }

    /// @notice Function to process the L2 withdrawal
    /// @param amount How many $LORDS were sent from L2
    /// @param l1Recipient Recipient of the (de)bridged $LORDS
    function withdraw(uint256 amount, address l1Recipient) external {
        uint256[] memory payload = new uint256[](4);
        payload[0] = PROCESS_WITHDRAWAL;
        payload[1] = uint256(uint160(l1Recipient));
        (payload[2], payload[3]) = splitUint256(amount);

        // The call to consumeMessageFromL2 will succeed only if a
        // matching L2->L1 message exists and is ready for consumption.
        IStarknetCore(starknet).consumeMessageFromL2(l2Bridge, payload);
        IERC20Like(l1Token).transfer(l1Recipient, amount);

        emit LogWithdrawal(l1Recipient, amount);
    }
}

Settings
{
  "remappings": [
    "create3-factory/=lib/create3-factory/src/",
    "ds-test/=lib/create3-factory/lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/create3-factory/lib/forge-std/src/",
    "solmate/=lib/create3-factory/lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_starknet","type":"address"},{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"uint256","name":"_l2Bridge","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"l1Sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"l2Recipient","type":"uint256"}],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"l1Recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdrawal","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"l2Recipient","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2Bridge","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"starknet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"l1Recipient","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080604052600436106100485760003560e01c8062aeef8a1461004d578062f714ce14610062578063ae1f6aaf14610082578063bb903eea146100c9578063c01e1bd614610115575b600080fd5b61006061005b366004610697565b610149565b005b34801561006e57600080fd5b5061006061007d3660046106c3565b610453565b34801561008e57600080fd5b506100b67f07c76a71952ce3acd1f953fd2a3fda8564408b821ff367041c89f4452607663381565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100fd7f000000000000000000000000c662c410c0ecf747543f5ba90660f6abebd9c8c481565b6040516001600160a01b0390911681526020016100c0565b34801561012157600080fd5b506100fd7f000000000000000000000000686f2404e77ab0d9070a46cdfb0b7fecdd2318b081565b6000831161018c5760405162461bcd60e51b815260206004820152600b60248201526a0416d6f756e7420697320360ac1b60448201526064015b60405180910390fd5b81158015906101bb57507f07c76a71952ce3acd1f953fd2a3fda8564408b821ff367041c89f445260766338214155b80156101d45750600167080000000000001160c01b0182105b6102175760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a5908130c881c9958da5c1a595b9d60621b6044820152606401610183565b6040805160038082526080820190925260009160208201606080368337019050509050828160008151811061024e5761024e6106ff565b60209081029190910101526001600160801b038416608085901c8260018151811061027b5761027b6106ff565b6020026020010183600281518110610295576102956106ff565b6020908102919091010191909152526040516323b872dd60e01b8152336004820152306024820152604481018590527f000000000000000000000000686f2404e77ab0d9070a46cdfb0b7fecdd2318b06001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033b9190610715565b50604051633e3aa6c560e01b81526001600160a01b037f000000000000000000000000c662c410c0ecf747543f5ba90660f6abebd9c8c41690633e3aa6c59084906103ce907f07c76a71952ce3acd1f953fd2a3fda8564408b821ff367041c89f44526076633907f02d757788a8d8d6f21d1cd40bce38a8222d70654214e96ff95d8086e684fbee5908790600401610779565b60206040518083038185885af11580156103ec573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061041191906107a1565b50604080518581526020810185905233917f9dbb0e7dda3e09710ce75b801addc87cf9d9c6c581641b3275fca409ad086c62910160405180910390a250505050565b60408051600480825260a082019092526000916020820160808036833701905050905060018160008151811061048b5761048b6106ff565b602002602001018181525050816001600160a01b0316816001815181106104b4576104b46106ff565b60209081029190910101526001600160801b038316608084901c826002815181106104e1576104e16106ff565b60200260200101836003815181106104fb576104fb6106ff565b60209081029190910101919091525260405162b2775760e61b81526001600160a01b037f000000000000000000000000c662c410c0ecf747543f5ba90660f6abebd9c8c41690632c9dd5c090610577907f07c76a71952ce3acd1f953fd2a3fda8564408b821ff367041c89f445260766339085906004016107ba565b6020604051808303816000875af1158015610596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ba91906107a1565b5060405163a9059cbb60e01b81526001600160a01b038381166004830152602482018590527f000000000000000000000000686f2404e77ab0d9070a46cdfb0b7fecdd2318b0169063a9059cbb906044016020604051808303816000875af115801561062a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064e9190610715565b50816001600160a01b03167fb4214c8c54fc7442f36d3682f59aebaf09358a4431835b30efb29d52cf9e1e918460405161068a91815260200190565b60405180910390a2505050565b6000806000606084860312156106ac57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156106d657600080fd5b8235915060208301356001600160a01b03811681146106f457600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561072757600080fd5b8151801515811461073757600080fd5b9392505050565b600081518084526020808501945080840160005b8381101561076e57815187529582019590820190600101610752565b509495945050505050565b838152826020820152606060408201526000610798606083018461073e565b95945050505050565b6000602082840312156107b357600080fd5b5051919050565b8281526040602082015260006107d3604083018461073e565b94935050505056fea2646970667358221220c33ca61a720c683ac7046a76bc48edbb4eb382ab1903707ee5c9f04dfc65de2564736f6c63430008140033

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