ETH Price: $1,844.14 (-2.69%)
 

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
Redeem Tickets222318732025-04-09 14:13:47321 days ago1744208027IN
0x8d779925...FCcA319de
0.00032896 ETH0.000506393.36919334
Redeem Tickets222308762025-04-09 10:53:35321 days ago1744196015IN
0x8d779925...FCcA319de
0.00005239 ETH0.00015081
Redeem Tickets222251312025-04-08 15:38:23322 days ago1744126703IN
0x8d779925...FCcA319de
0.00007224 ETH0.000339062.24840299
Redeem Tickets222158852025-04-07 8:38:47323 days ago1744015127IN
0x8d779925...FCcA319de
0.00041822 ETH0.0017262311.48409962
Redeem Tickets221968912025-04-04 16:56:47325 days ago1743785807IN
0x8d779925...FCcA319de
0.0000459 ETH0.000267061.77696841
Redeem Tickets221838412025-04-02 21:13:23327 days ago1743628403IN
0x8d779925...FCcA319de
0.00033005 ETH0.000443482.95037938
Redeem Tickets221823382025-04-02 16:11:47327 days ago1743610307IN
0x8d779925...FCcA319de
0.00010114 ETH0.00033092.20138164
Redeem Tickets221822232025-04-02 15:48:47328 days ago1743608927IN
0x8d779925...FCcA319de
0.00042843 ETH0.000608233.92115718
Redeem Tickets221717132025-04-01 4:37:35329 days ago1743482255IN
0x8d779925...FCcA319de
0.00003371 ETH0.000166971.11094881
Redeem Tickets221656732025-03-31 8:22:11330 days ago1743409331IN
0x8d779925...FCcA319de
0.00003426 ETH0.000187331.07180102
Redeem Tickets221401652025-03-27 18:53:11333 days ago1743101591IN
0x8d779925...FCcA319de
0.000031 ETH0.000138930.92439075
Redeem Tickets221400672025-03-27 18:33:11333 days ago1743100391IN
0x8d779925...FCcA319de
0.00003079 ETH0.000145350.93723927
Redeem Tickets221398902025-03-27 17:57:35333 days ago1743098255IN
0x8d779925...FCcA319de
0.0000371 ETH0.000128330.8538575
Redeem Tickets221382112025-03-27 12:20:11334 days ago1743078011IN
0x8d779925...FCcA319de
0.00003768 ETH0.000262171.5
Redeem Tickets221370872025-03-27 8:35:11334 days ago1743064511IN
0x8d779925...FCcA319de
0.00003121 ETH0.000128850.85730336
Redeem Tickets221365542025-03-27 6:48:11334 days ago1743058091IN
0x8d779925...FCcA319de
0.00003051 ETH0.000127380.84759201
Redeem Tickets221365342025-03-27 6:44:11334 days ago1743057851IN
0x8d779925...FCcA319de
0.00003025 ETH0.000129180.85951653
Redeem Tickets221365062025-03-27 6:38:35334 days ago1743057515IN
0x8d779925...FCcA319de
0.00003151 ETH0.000142150.91656413
Redeem Tickets221363932025-03-27 6:15:59334 days ago1743056159IN
0x8d779925...FCcA319de
0.00003182 ETH0.000138540.89324602
Redeem Tickets221362782025-03-27 5:52:59334 days ago1743054779IN
0x8d779925...FCcA319de
0.0000313 ETH0.000167380.93206699
Redeem Tickets221354012025-03-27 2:56:11334 days ago1743044171IN
0x8d779925...FCcA319de
0.0000353 ETH0.000185661.19705152
Redeem Tickets221221922025-03-25 6:41:23336 days ago1742884883IN
0x8d779925...FCcA319de
0.00006876 ETH0.000131670.87027361
Redeem Tickets221088242025-03-23 9:54:11338 days ago1742723651IN
0x8d779925...FCcA319de
0.00003059 ETH0.000145970.97131114
Redeem Tickets221051322025-03-22 21:33:11338 days ago1742679191IN
0x8d779925...FCcA319de
0.00003104 ETH0.000080750.53731021
Redeem Tickets221041212025-03-22 18:10:11338 days ago1742667011IN
0x8d779925...FCcA319de
0.00003108 ETH0.000136240.90650185
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Create Retryable...222318732025-04-09 14:13:47321 days ago1744208027
0x8d779925...FCcA319de
0.00032896 ETH
Create Retryable...222308762025-04-09 10:53:35321 days ago1744196015
0x8d779925...FCcA319de
0.00005239 ETH
Create Retryable...222251312025-04-08 15:38:23322 days ago1744126703
0x8d779925...FCcA319de
0.00007224 ETH
Create Retryable...222158852025-04-07 8:38:47323 days ago1744015127
0x8d779925...FCcA319de
0.00041822 ETH
Create Retryable...221968912025-04-04 16:56:47325 days ago1743785807
0x8d779925...FCcA319de
0.0000459 ETH
Create Retryable...221838412025-04-02 21:13:23327 days ago1743628403
0x8d779925...FCcA319de
0.00033005 ETH
Create Retryable...221823382025-04-02 16:11:47327 days ago1743610307
0x8d779925...FCcA319de
0.00010114 ETH
Create Retryable...221822232025-04-02 15:48:47328 days ago1743608927
0x8d779925...FCcA319de
0.00042843 ETH
Create Retryable...221717132025-04-01 4:37:35329 days ago1743482255
0x8d779925...FCcA319de
0.00003371 ETH
Create Retryable...221656732025-03-31 8:22:11330 days ago1743409331
0x8d779925...FCcA319de
0.00003426 ETH
Create Retryable...221401652025-03-27 18:53:11333 days ago1743101591
0x8d779925...FCcA319de
0.000031 ETH
Create Retryable...221400672025-03-27 18:33:11333 days ago1743100391
0x8d779925...FCcA319de
0.00003079 ETH
Create Retryable...221398902025-03-27 17:57:35333 days ago1743098255
0x8d779925...FCcA319de
0.0000371 ETH
Create Retryable...221382112025-03-27 12:20:11334 days ago1743078011
0x8d779925...FCcA319de
0.00003768 ETH
Create Retryable...221370872025-03-27 8:35:11334 days ago1743064511
0x8d779925...FCcA319de
0.00003121 ETH
Create Retryable...221365542025-03-27 6:48:11334 days ago1743058091
0x8d779925...FCcA319de
0.00003051 ETH
Create Retryable...221365342025-03-27 6:44:11334 days ago1743057851
0x8d779925...FCcA319de
0.00003025 ETH
Create Retryable...221365062025-03-27 6:38:35334 days ago1743057515
0x8d779925...FCcA319de
0.00003151 ETH
Create Retryable...221363932025-03-27 6:15:59334 days ago1743056159
0x8d779925...FCcA319de
0.00003182 ETH
Create Retryable...221362782025-03-27 5:52:59334 days ago1743054779
0x8d779925...FCcA319de
0.0000313 ETH
Create Retryable...221354012025-03-27 2:56:11334 days ago1743044171
0x8d779925...FCcA319de
0.0000353 ETH
Create Retryable...221221922025-03-25 6:41:23336 days ago1742884883
0x8d779925...FCcA319de
0.00006876 ETH
Create Retryable...221088242025-03-23 9:54:11338 days ago1742723651
0x8d779925...FCcA319de
0.00003059 ETH
Create Retryable...221051322025-03-22 21:33:11338 days ago1742679191
0x8d779925...FCcA319de
0.00003104 ETH
Create Retryable...221041212025-03-22 18:10:11338 days ago1742667011
0x8d779925...FCcA319de
0.00003108 ETH
View All Internal Transactions
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:
TicketsRedeemL1

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "arb-bridge-eth/contracts/bridge/interfaces/IInbox.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./TicketsRedeemL2.sol";

interface IERC1155Burnable {
    function mint(
        address account,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) external;

    function burnBatch(
        address account,
        uint256[] memory ids,
        uint256[] memory values
    ) external;
}

contract TicketsRedeemL1 is Ownable {
    IERC1155Burnable public ferryTickets;
    IERC1155Burnable public goldenBadges;
    IInbox public inbox;
    address public l2Target;

    event TicketsRedeemInitiated(
        uint indexed ticket,
        address indexed wallet,
        uint[] ids,
        uint[] amounts
    );

    constructor(address _ferryTickets, address _goldenBadges, address _inbox) {
        ferryTickets = IERC1155Burnable(_ferryTickets);
        goldenBadges = IERC1155Burnable(_goldenBadges);
        inbox = IInbox(_inbox);
    }

    function updateL2Target(address _l2Target) external onlyOwner {
        l2Target = _l2Target;
    }

    function _random() internal view returns (uint) {
        return
            uint(
                keccak256(
                    abi.encodePacked(
                        block.difficulty,
                        block.timestamp,
                        msg.sender,
                        gasleft()
                    )
                )
            ) % 100;
    }

    function redeemTickets(
        uint[] calldata ids,
        uint[] calldata amounts,
        uint maxSubmissionCost,
        uint maxGas,
        uint gasPriceBid
    ) public payable returns (uint) {
        ferryTickets.burnBatch(msg.sender, ids, amounts);

        // Sending tickets to L2
        bytes memory data = abi.encodeWithSelector(
            TicketsRedeemL2.redeemTickets.selector,
            msg.sender,
            ids,
            amounts
        );
        uint ticket = inbox.createRetryableTicket{value: msg.value}(
            l2Target,
            0,
            maxSubmissionCost,
            msg.sender,
            msg.sender,
            maxGas,
            gasPriceBid,
            data
        );

        // Minting Golden badges
        uint badges = 0;
        for (uint i = 0; i < ids.length; i++) {
            if (ids[i] == 1) {
                badges += amounts[i];
            } else if (ids[i] == 2) {
                for (uint j = 0; j < amounts[i]; j++) {
                    if (_random() < 10) {
                        badges += 1;
                    }
                }
            }
        }

        if (badges > 0) {
            goldenBadges.mint(msg.sender, 1, badges, "");
        }

        emit TicketsRedeemInitiated(ticket, msg.sender, ids, amounts);
        return ticket;
    }
}

// Copyright 2021-2022, Offchain Labs, Inc.
// For license information, see https://github.com/nitro/blob/master/LICENSE
// SPDX-License-Identifier: BUSL-1.1

pragma solidity ^0.8.0;

library AddressAliasHelper {
    uint160 internal constant OFFSET = uint160(0x1111000000000000000000000000000000001111);

    /// @notice Utility function that converts the address in the L1 that submitted a tx to
    /// the inbox to the msg.sender viewed in the L2
    /// @param l1Address the address in the L1 that triggered the tx to L2
    /// @return l2Address L2 address as viewed in msg.sender
    function applyL1ToL2Alias(address l1Address) internal pure returns (address l2Address) {
        unchecked {
            l2Address = address(uint160(l1Address) + OFFSET);
        }
    }

    /// @notice Utility function that converts the msg.sender viewed in the L2 to the
    /// address in the L1 that submitted a tx to the inbox
    /// @param l2Address L2 address as viewed in msg.sender
    /// @return l1Address the address in the L1 that triggered the tx to L2
    function undoL1ToL2Alias(address l2Address) internal pure returns (address l1Address) {
        unchecked {
            l1Address = address(uint160(l2Address) - OFFSET);
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// SPDX-License-Identifier: Apache-2.0

/*
 * Copyright 2021, Offchain Labs, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// solhint-disable-next-line compiler-version
pragma solidity >=0.6.9 <0.9.0;

interface IBridge {
    event MessageDelivered(
        uint256 indexed messageIndex,
        bytes32 indexed beforeInboxAcc,
        address inbox,
        uint8 kind,
        address sender,
        bytes32 messageDataHash
    );

    event BridgeCallTriggered(
        address indexed outbox,
        address indexed destAddr,
        uint256 amount,
        bytes data
    );

    event InboxToggle(address indexed inbox, bool enabled);

    event OutboxToggle(address indexed outbox, bool enabled);

    function deliverMessageToInbox(
        uint8 kind,
        address sender,
        bytes32 messageDataHash
    ) external payable returns (uint256);

    function executeCall(
        address destAddr,
        uint256 amount,
        bytes calldata data
    ) external returns (bool success, bytes memory returnData);

    // These are only callable by the admin
    function setInbox(address inbox, bool enabled) external;

    function setOutbox(address inbox, bool enabled) external;

    // View functions

    function activeOutbox() external view returns (address);

    function allowedInboxes(address inbox) external view returns (bool);

    function allowedOutboxes(address outbox) external view returns (bool);

    function inboxAccs(uint256 index) external view returns (bytes32);

    function messageCount() external view returns (uint256);
}

// SPDX-License-Identifier: Apache-2.0

/*
 * Copyright 2021, Offchain Labs, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// solhint-disable-next-line compiler-version
pragma solidity >=0.6.9 <0.9.0;

import "./IBridge.sol";
import "./IMessageProvider.sol";

interface IInbox is IMessageProvider {
    function sendL2Message(bytes calldata messageData) external returns (uint256);

    function sendUnsignedTransaction(
        uint256 maxGas,
        uint256 gasPriceBid,
        uint256 nonce,
        address destAddr,
        uint256 amount,
        bytes calldata data
    ) external returns (uint256);

    function sendContractTransaction(
        uint256 maxGas,
        uint256 gasPriceBid,
        address destAddr,
        uint256 amount,
        bytes calldata data
    ) external returns (uint256);

    function sendL1FundedUnsignedTransaction(
        uint256 maxGas,
        uint256 gasPriceBid,
        uint256 nonce,
        address destAddr,
        bytes calldata data
    ) external payable returns (uint256);

    function sendL1FundedContractTransaction(
        uint256 maxGas,
        uint256 gasPriceBid,
        address destAddr,
        bytes calldata data
    ) external payable returns (uint256);

    function createRetryableTicket(
        address destAddr,
        uint256 arbTxCallValue,
        uint256 maxSubmissionCost,
        address submissionRefundAddress,
        address valueRefundAddress,
        uint256 maxGas,
        uint256 gasPriceBid,
        bytes calldata data
    ) external payable returns (uint256);

    function unsafeCreateRetryableTicket(
        address destAddr,
        uint256 arbTxCallValue,
        uint256 maxSubmissionCost,
        address submissionRefundAddress,
        address valueRefundAddress,
        uint256 maxGas,
        uint256 gasPriceBid,
        bytes calldata data
    ) external payable returns (uint256);

    function depositEth(uint256 maxSubmissionCost) external payable returns (uint256);

    function bridge() external view returns (IBridge);

    function pauseCreateRetryables() external;

    function unpauseCreateRetryables() external;

    function startRewriteAddress() external;

    function stopRewriteAddress() external;
}

File 7 of 8 : IMessageProvider.sol
// SPDX-License-Identifier: Apache-2.0

/*
 * Copyright 2021, Offchain Labs, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// solhint-disable-next-line compiler-version
pragma solidity >=0.6.9 <0.9.0;

interface IMessageProvider {
    event InboxMessageDelivered(uint256 indexed messageNum, bytes data);

    event InboxMessageDeliveredFromOrigin(uint256 indexed messageNum);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "@arbitrum/nitro-contracts/src/libraries/AddressAliasHelper.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

interface BeastContract {
    function safeMint(address to) external returns (uint256);
}

contract TicketsRedeemL2 is Ownable {
    address public l1Target;
    BeastContract public originBeasts;
    BeastContract public beasts;

    enum BeastCollection {
        OriginBeast,
        StarterBeast
    }

    event BeastRedeemed(
        uint indexed tokenId,
        BeastCollection indexed collection,
        bool fromGoldenTicket
    );
    event TicketsRedeemed(address indexed from, uint[] ids, uint[] amounts);

    constructor(address _l1Target, address _originBeasts, address _beasts) {
        l1Target = _l1Target;
        originBeasts = BeastContract(_originBeasts);
        beasts = BeastContract(_beasts);
    }

    function updateL1Target(address _l1Target) external onlyOwner {
        l1Target = _l1Target;
    }

    function _random() internal view returns (uint) {
        return
            uint(
                keccak256(
                    abi.encodePacked(
                        block.difficulty,
                        block.timestamp,
                        msg.sender,
                        gasleft()
                    )
                )
            ) % 100;
    }

    function redeemTickets(
        address from,
        uint[] calldata ids,
        uint[] calldata amounts
    ) public {
        require(
            msg.sender == AddressAliasHelper.applyL1ToL2Alias(l1Target),
            "Can only be called by L1 contract"
        );

        require(ids.length == amounts.length, "Invalid input length");

        for (uint i = 0; i < ids.length; i++) {
            uint256 tokenId = ids[i];
            uint256 amount = amounts[i];
            for (uint j = 0; j < amount; j++) {
                if (tokenId == 1) {
                    uint originId = originBeasts.safeMint(from);
                    uint starterId = beasts.safeMint(from);
                    emit BeastRedeemed(
                        originId,
                        BeastCollection.OriginBeast,
                        true
                    );
                    emit BeastRedeemed(
                        starterId,
                        BeastCollection.StarterBeast,
                        true
                    );
                } else if (tokenId == 2) {
                    uint originId = originBeasts.safeMint(from);
                    emit BeastRedeemed(
                        originId,
                        BeastCollection.OriginBeast,
                        false
                    );

                    if (_random() < 10) {
                        uint starterId = beasts.safeMint(from);
                        emit BeastRedeemed(
                            starterId,
                            BeastCollection.StarterBeast,
                            false
                        );
                    }
                }
            }
        }

        emit TicketsRedeemed(from, ids, amounts);
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_ferryTickets","type":"address"},{"internalType":"address","name":"_goldenBadges","type":"address"},{"internalType":"address","name":"_inbox","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"ticket","type":"uint256"},{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TicketsRedeemInitiated","type":"event"},{"inputs":[],"name":"ferryTickets","outputs":[{"internalType":"contract IERC1155Burnable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goldenBadges","outputs":[{"internalType":"contract IERC1155Burnable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inbox","outputs":[{"internalType":"contract IInbox","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2Target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"maxSubmissionCost","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"},{"internalType":"uint256","name":"gasPriceBid","type":"uint256"}],"name":"redeemTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l2Target","type":"address"}],"name":"updateL2Target","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610ba0380380610ba083398101604081905261002f916100e6565b6100383361007a565b600180546001600160a01b039485166001600160a01b031991821617909155600280549385169382169390931790925560038054919093169116179055610129565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100e157600080fd5b919050565b6000806000606084860312156100fb57600080fd5b610104846100ca565b9250610112602085016100ca565b9150610120604085016100ca565b90509250925092565b610a68806101386000396000f3fe6080604052600436106100965760003560e01c8063a110cfcf11610069578063c2b530d61161004e578063c2b530d61461016a578063f2fde38b1461018a578063fb0e722b146101aa57600080fd5b8063a110cfcf1461012a578063b67307f61461014a57600080fd5b8063150c3c4e1461009b57806318e95324146100c1578063715018a6146100e35780638da5cb5b146100f8575b600080fd5b6100ae6100a936600461078a565b6101ca565b6040519081526020015b60405180910390f35b3480156100cd57600080fd5b506100e16100dc366004610811565b610545565b005b3480156100ef57600080fd5b506100e161057c565b34801561010457600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100b8565b34801561013657600080fd5b50600254610112906001600160a01b031681565b34801561015657600080fd5b50600154610112906001600160a01b031681565b34801561017657600080fd5b50600454610112906001600160a01b031681565b34801561019657600080fd5b506100e16101a5366004610811565b610590565b3480156101b657600080fd5b50600354610112906001600160a01b031681565b6001546040517f6b20c4540000000000000000000000000000000000000000000000000000000081526000916001600160a01b031690636b20c4549061021c9033908c908c908c908c9060040161088c565b600060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b50505050600063334d05bd60e01b338a8a8a8a60405160240161027195949392919061088c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092526003546004805493517f679b6ded0000000000000000000000000000000000000000000000000000000081529294506000936001600160a01b039283169363679b6ded933493610332939091169187918d91339182918f918f918e91016108ce565b60206040518083038185885af1158015610350573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103759190610967565b90506000805b8a811015610455578b8b8281811061039557610395610980565b905060200201356001036103ce578989828181106103b5576103b5610980565b90506020020135826103c791906109ac565b9150610443565b8b8b828181106103e0576103e0610980565b905060200201356002036104435760005b8a8a8381811061040357610403610980565b9050602002013581101561044157600a61041b610625565b101561042f5761042c6001846109ac565b92505b80610439816109c5565b9150506103f1565b505b8061044d816109c5565b91505061037b565b5080156104ef576002546040517f731133e9000000000000000000000000000000000000000000000000000000008152336004820152600160248201526044810183905260806064820152600060848201526001600160a01b039091169063731133e99060a401600060405180830381600087803b1580156104d657600080fd5b505af11580156104ea573d6000803e3d6000fd5b505050505b336001600160a01b0316827f80fb78b6bb0156517fdaa0969a885abe1503b568430bae4b144e7f0ae30af7668d8d8d8d60405161052f94939291906109de565b60405180910390a3509998505050505050505050565b61054d610687565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610584610687565b61058e60006106e1565b565b610598610687565b6001600160a01b0381166106195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610622816106e1565b50565b600060644442335a6040805160208101959095528401929092526bffffffffffffffffffffffff19606091821b169083015260748201526094016040516020818303038152906040528051906020012060001c6106829190610a10565b905090565b6000546001600160a01b0316331461058e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610610565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261075057600080fd5b50813567ffffffffffffffff81111561076857600080fd5b6020830191508360208260051b850101111561078357600080fd5b9250929050565b600080600080600080600060a0888a0312156107a557600080fd5b873567ffffffffffffffff808211156107bd57600080fd5b6107c98b838c0161073e565b909950975060208a01359150808211156107e257600080fd5b506107ef8a828b0161073e565b989b979a50986040810135976060820135975060809091013595509350505050565b60006020828403121561082357600080fd5b81356001600160a01b038116811461083a57600080fd5b9392505050565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561087357600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082015260006108af606083018688610841565b82810360408401526108c2818587610841565b98975050505050505050565b60006101006001600160a01b03808c16845260208b818601528a6040860152818a16606086015281891660808601528760a08601528660c08601528260e0860152855191508183860152600092505b8183101561093c5785830181015185840161012001529182019161091d565b506101209150600082828601015281601f19601f830116850101925050509998505050505050505050565b60006020828403121561097957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156109bf576109bf610996565b92915050565b6000600182016109d7576109d7610996565b5060010190565b6040815260006109f2604083018688610841565b8281036020840152610a05818587610841565b979650505050505050565b600082610a2d57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212204687a493d6bd27089f6077374c6f4da010abf88ee5845bc43954434125f1a60b64736f6c634300081100330000000000000000000000006a47f2e78e6a594e594fd3e318f301e987b60d55000000000000000000000000a24eab851c71dc043bb7195e7da9fbcfd01860960000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f

Deployed Bytecode

0x6080604052600436106100965760003560e01c8063a110cfcf11610069578063c2b530d61161004e578063c2b530d61461016a578063f2fde38b1461018a578063fb0e722b146101aa57600080fd5b8063a110cfcf1461012a578063b67307f61461014a57600080fd5b8063150c3c4e1461009b57806318e95324146100c1578063715018a6146100e35780638da5cb5b146100f8575b600080fd5b6100ae6100a936600461078a565b6101ca565b6040519081526020015b60405180910390f35b3480156100cd57600080fd5b506100e16100dc366004610811565b610545565b005b3480156100ef57600080fd5b506100e161057c565b34801561010457600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100b8565b34801561013657600080fd5b50600254610112906001600160a01b031681565b34801561015657600080fd5b50600154610112906001600160a01b031681565b34801561017657600080fd5b50600454610112906001600160a01b031681565b34801561019657600080fd5b506100e16101a5366004610811565b610590565b3480156101b657600080fd5b50600354610112906001600160a01b031681565b6001546040517f6b20c4540000000000000000000000000000000000000000000000000000000081526000916001600160a01b031690636b20c4549061021c9033908c908c908c908c9060040161088c565b600060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b50505050600063334d05bd60e01b338a8a8a8a60405160240161027195949392919061088c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092526003546004805493517f679b6ded0000000000000000000000000000000000000000000000000000000081529294506000936001600160a01b039283169363679b6ded933493610332939091169187918d91339182918f918f918e91016108ce565b60206040518083038185885af1158015610350573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103759190610967565b90506000805b8a811015610455578b8b8281811061039557610395610980565b905060200201356001036103ce578989828181106103b5576103b5610980565b90506020020135826103c791906109ac565b9150610443565b8b8b828181106103e0576103e0610980565b905060200201356002036104435760005b8a8a8381811061040357610403610980565b9050602002013581101561044157600a61041b610625565b101561042f5761042c6001846109ac565b92505b80610439816109c5565b9150506103f1565b505b8061044d816109c5565b91505061037b565b5080156104ef576002546040517f731133e9000000000000000000000000000000000000000000000000000000008152336004820152600160248201526044810183905260806064820152600060848201526001600160a01b039091169063731133e99060a401600060405180830381600087803b1580156104d657600080fd5b505af11580156104ea573d6000803e3d6000fd5b505050505b336001600160a01b0316827f80fb78b6bb0156517fdaa0969a885abe1503b568430bae4b144e7f0ae30af7668d8d8d8d60405161052f94939291906109de565b60405180910390a3509998505050505050505050565b61054d610687565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610584610687565b61058e60006106e1565b565b610598610687565b6001600160a01b0381166106195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610622816106e1565b50565b600060644442335a6040805160208101959095528401929092526bffffffffffffffffffffffff19606091821b169083015260748201526094016040516020818303038152906040528051906020012060001c6106829190610a10565b905090565b6000546001600160a01b0316331461058e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610610565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261075057600080fd5b50813567ffffffffffffffff81111561076857600080fd5b6020830191508360208260051b850101111561078357600080fd5b9250929050565b600080600080600080600060a0888a0312156107a557600080fd5b873567ffffffffffffffff808211156107bd57600080fd5b6107c98b838c0161073e565b909950975060208a01359150808211156107e257600080fd5b506107ef8a828b0161073e565b989b979a50986040810135976060820135975060809091013595509350505050565b60006020828403121561082357600080fd5b81356001600160a01b038116811461083a57600080fd5b9392505050565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561087357600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082015260006108af606083018688610841565b82810360408401526108c2818587610841565b98975050505050505050565b60006101006001600160a01b03808c16845260208b818601528a6040860152818a16606086015281891660808601528760a08601528660c08601528260e0860152855191508183860152600092505b8183101561093c5785830181015185840161012001529182019161091d565b506101209150600082828601015281601f19601f830116850101925050509998505050505050505050565b60006020828403121561097957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156109bf576109bf610996565b92915050565b6000600182016109d7576109d7610996565b5060010190565b6040815260006109f2604083018688610841565b8281036020840152610a05818587610841565b979650505050505050565b600082610a2d57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212204687a493d6bd27089f6077374c6f4da010abf88ee5845bc43954434125f1a60b64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006a47f2e78e6a594e594fd3e318f301e987b60d55000000000000000000000000a24eab851c71dc043bb7195e7da9fbcfd01860960000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f

-----Decoded View---------------
Arg [0] : _ferryTickets (address): 0x6A47f2e78E6a594E594fd3e318f301e987b60d55
Arg [1] : _goldenBadges (address): 0xa24EaB851C71Dc043Bb7195e7dA9fBCfd0186096
Arg [2] : _inbox (address): 0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000006a47f2e78e6a594e594fd3e318f301e987b60d55
Arg [1] : 000000000000000000000000a24eab851c71dc043bb7195e7da9fbcfd0186096
Arg [2] : 0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f


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