Contract 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d 7

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5068324b09583286826f72201c55b36142c99bcd906d8289d6a065c11569838bTransfer Ownersh...236375382022-09-08 19:08:25143 days 23 hrs ago0x45208e8d6d09d6bfce5094083ab36f22bdfc8456 IN  0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH0.00004684
0x6e4d70b805afe72db684aa60e016c39b4947eede891f21ae3e4f2c6b9476007c0x60806040214268072022-08-26 15:38:31157 days 3 hrs ago0x45208e8d6d09d6bfce5094083ab36f22bdfc8456 IN  Create: TreasuryV20 ETH0.002282928157 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x36b7b7fed083538b135bc95a1b3c1dc777a271055c31bdf0895f43afc1e94db4567028012023-01-30 18:36:472 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xf51839e95175618c5256de4b05f792aa66e10aacd84ff12458bcd5f9866668d0567025602023-01-30 18:35:353 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x1b15deb52e4abce5e01aa3e1bcb5e839dd56037eadfe235fda04421195ba4782567024482023-01-30 18:35:044 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x4eac9f77534eabdc2c6c7dedacbf361c2d8c80693fd8f7dc64cf53f5ff405fa0567023512023-01-30 18:34:374 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x1780a2c9509050c56c34fd55f128169d593ebd1a6ff98cd8f67584e880ad6767567023092023-01-30 18:34:264 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xa056a70c1f3893edcc17dd44404698961625b36b648c8a545d0071efb2286df1567022552023-01-30 18:34:125 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x355a6b828025aa7cf6d66fc3b952e63a87b34a78c76382966969f822f258febb567021332023-01-30 18:33:405 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x7fcd3c2ffac280cd159f9c0ab45e836473f3627d945adb896f524b61a1803c03567017082023-01-30 18:31:297 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x8ea7343d5e0b0e1e9df62e22e93aab3e8226ff3739dbe995b513b4dd4116e84c567016762023-01-30 18:31:168 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x75b10f6fb1550787406166b7fe2f0231c6d97f9155739d379db2b50f314b853e567016742023-01-30 18:31:158 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x22b3103b00b8ef5eeea562c5e97eeb0455fe828f5a25377bd6b8320da1784ef5567015992023-01-30 18:30:548 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x58f100bcb106a02d015da3ca846db5954171efe4bd71fcee696a33158c8954e3567015692023-01-30 18:30:428 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xc94906f128bab96c6ec153178ba997827a59e3dec61caabb9de9e6090bdbe750567014982023-01-30 18:30:219 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xa1490993151075fedf26b66b359b193b528e648d1eb2c87dce117eeb81309b25567013852023-01-30 18:29:499 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xb054ef4509e8179a1b5885aacb159df2fce06689e212ea3fea56f7e4b5bc6019567013552023-01-30 18:29:419 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x44e00240da403f455846a0b4812e6be59e2802c4f138098cf7f65b8383926d68567010732023-01-30 18:28:1911 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x20f97c9c3f7c5813328d54bf0a1bb312850c6bcd9ebbfe8c65058b3239b0124c567009022023-01-30 18:27:2811 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xfe0eb447dfec29a877611f810f76ef7703a67133c40b9ad973002187f5b0116c567006042023-01-30 18:25:5713 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xab15340b83193467165be217cc4523ba08e0f68a10830ab55351e78accb1bebb566997192023-01-30 18:22:0917 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xa01378e435eac858311e7ad43a86d3689b3794710f313b099b687543feace469566994752023-01-30 18:20:5818 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x91c07e0d8000d0e7ee2e65bcfb26a7bd9c62f0aef1806eed44a1efb252e73190566992812023-01-30 18:19:5819 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x8910c54036fb95e68c32ae0ecc0ae15a3582b80c346803b221fe1bd7998a2ac9566992312023-01-30 18:19:4219 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x5b773dd9fe4c3e9075ff502c33ac1cff23a665bda3b2de5616dea187ecaca809566990912023-01-30 18:19:0120 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0x36d24801513738e8f1bfe70a2db2939a1165602c70671224fcb09854470c8b76566990492023-01-30 18:18:4820 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
0xd4702bec72f2479f7e8187559d0503ae68b851ae0ee5c011a2666e8fd3744c2d566988802023-01-30 18:18:0021 mins ago 0x4d73adb72bc3dd368966edd0f0b2148401a178e2 0x3773e1e9deb273fcdf9f80bc88bb387b1e6ce34d0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TreasuryV2

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 30000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : TreasuryV2.sol
// SPDX-License-Identifier: BUSL-1.1

pragma solidity 0.7.6;

import "./interfaces/ILayerZeroTreasury.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
import "./interfaces/ILayerZeroUltraLightNodeV2.sol";

contract TreasuryV2 is ILayerZeroTreasury, Ownable {
    using SafeMath for uint;

    uint public nativeBP;
    uint public zroFee;
    bool public feeEnabled;
    bool public zroEnabled;

    ILayerZeroUltraLightNodeV2 public uln;

    event NativeBP(uint bp);
    event ZroFee(uint zroFee);
    event FeeEnabled(bool feeEnabled);
    event ZroEnabled(bool zroEnabled);

    constructor(address _ulnv2) {
        uln = ILayerZeroUltraLightNodeV2(_ulnv2);
    }

    function getFees(bool payInZro, uint relayerFee, uint oracleFee) external view override returns (uint) {
        if (feeEnabled) {
            if (payInZro) {
                require(zroEnabled, "LayerZero: ZRO is not enabled");
                return zroFee;
            } else {
                return relayerFee.add(oracleFee).mul(nativeBP).div(10000);
            }
        }
        return 0;
    }

    function setFeeEnabled(bool _feeEnabled) external onlyOwner {
        feeEnabled = _feeEnabled;
        emit FeeEnabled(_feeEnabled);
    }

    function setZroEnabled(bool _zroEnabled) external onlyOwner {
        zroEnabled = _zroEnabled;
        emit ZroEnabled(_zroEnabled);
    }

    function setNativeBP(uint _nativeBP) external onlyOwner {
        nativeBP = _nativeBP;
        emit NativeBP(_nativeBP);
    }

    function setZroFee(uint _zroFee) external onlyOwner {
        zroFee = _zroFee;
        emit ZroFee(_zroFee);
    }

    function withdrawZROFromULN(address _to, uint _amount) external onlyOwner {
        uln.withdrawZRO(_to, _amount);
    }

    function withdrawNativeFromULN(address payable _to, uint _amount) external onlyOwner {
        uln.withdrawNative(_to, _amount);
    }
}

File 2 of 6 : ILayerZeroTreasury.sol
// SPDX-License-Identifier: BUSL-1.1

pragma solidity >=0.5.0;

interface ILayerZeroTreasury {
    function getFees(bool payInZro, uint relayerFee, uint oracleFee) external view returns (uint);
}

File 3 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

pragma solidity ^0.7.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

File 5 of 6 : ILayerZeroUltraLightNodeV2.sol
// SPDX-License-Identifier: BUSL-1.1

pragma solidity >=0.7.0;
pragma abicoder v2;

interface ILayerZeroUltraLightNodeV2 {
    // Relayer functions
    function validateTransactionProof(uint16 _srcChainId, address _dstAddress, uint _gasLimit, bytes32 _lookupHash, bytes32 _blockData, bytes calldata _transactionProof) external;

    // an Oracle delivers the block data using updateHash()
    function updateHash(uint16 _srcChainId, bytes32 _lookupHash, uint _confirmations, bytes32 _blockData) external;

    // can only withdraw the receivable of the msg.sender
    function withdrawNative(address payable _to, uint _amount) external;

    function withdrawZRO(address _to, uint _amount) external;

    // view functions
    function getAppConfig(uint16 _remoteChainId, address _userApplicationAddress) external view returns (ApplicationConfiguration memory);

    function accruedNativeFee(address _address) external view returns (uint);

    struct ApplicationConfiguration {
        uint16 inboundProofLibraryVersion;
        uint64 inboundBlockConfirmations;
        address relayer;
        uint16 outboundProofType;
        uint64 outboundBlockConfirmations;
        address oracle;
    }

    event HashReceived(uint16 indexed srcChainId, address indexed oracle, bytes32 lookupHash, bytes32 blockData, uint confirmations);
    event RelayerParams(bytes adapterParams, uint16 outboundProofType);
    event Packet(bytes payload);
    event InvalidDst(uint16 indexed srcChainId, bytes srcAddress, address indexed dstAddress, uint64 nonce, bytes32 payloadHash);
    event PacketReceived(uint16 indexed srcChainId, bytes srcAddress, address indexed dstAddress, uint64 nonce, bytes32 payloadHash);
    event AppConfigUpdated(address indexed userApplication, uint indexed configType, bytes newConfig);
    event AddInboundProofLibraryForChain(uint16 indexed chainId, address lib);
    event EnableSupportedOutboundProof(uint16 indexed chainId, uint16 proofType);
    event SetChainAddressSize(uint16 indexed chainId, uint size);
    event SetDefaultConfigForChainId(uint16 indexed chainId, uint16 inboundProofLib, uint64 inboundBlockConfirm, address relayer, uint16 outboundProofType, uint64 outboundBlockConfirm, address oracle);
    event SetDefaultAdapterParamsForChainId(uint16 indexed chainId, uint16 indexed proofType, bytes adapterParams);
    event SetLayerZeroToken(address indexed tokenAddress);
    event SetRemoteUln(uint16 indexed chainId, bytes32 uln);
    event SetTreasury(address indexed treasuryAddress);
    event WithdrawZRO(address indexed msgSender, address indexed to, uint amount);
    event WithdrawNative(address indexed msgSender, address indexed to, uint amount);
}

File 6 of 6 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <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 GSN 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 payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_ulnv2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"feeEnabled","type":"bool"}],"name":"FeeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bp","type":"uint256"}],"name":"NativeBP","type":"event"},{"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":false,"internalType":"bool","name":"zroEnabled","type":"bool"}],"name":"ZroEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"zroFee","type":"uint256"}],"name":"ZroFee","type":"event"},{"inputs":[],"name":"feeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"payInZro","type":"bool"},{"internalType":"uint256","name":"relayerFee","type":"uint256"},{"internalType":"uint256","name":"oracleFee","type":"uint256"}],"name":"getFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeBP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_feeEnabled","type":"bool"}],"name":"setFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nativeBP","type":"uint256"}],"name":"setNativeBP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_zroEnabled","type":"bool"}],"name":"setZroEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_zroFee","type":"uint256"}],"name":"setZroFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uln","outputs":[{"internalType":"contract ILayerZeroUltraLightNodeV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawNativeFromULN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawZROFromULN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zroEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zroFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610fc6380380610fc68339818101604052602081101561003357600080fd5b5051600061003f6100b6565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b03909216620100000262010000600160b01b03199092169190911790556100ba565b3390565b610efd806100c96000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063baead4cc11610066578063baead4cc14610254578063d684b25314610271578063d935d12314610290578063f2fde38b14610298576100f5565b80638da5cb5b1461022057806396a141a014610228578063a771ebc714610230578063af406aa51461024c576100f5565b80636c473aff116100d35780636c473aff14610191578063715018a6146101c25780637ba20ccf146101ca5780638c616397146101e7576100f5565b80630db474fa146100fa5780633c5ac8f71461011b5780635cbbbd7514610154575b600080fd5b6101196004803603602081101561011057600080fd5b503515156102cb565b005b6101196004803603604081101561013157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103d8565b61017f6004803603606081101561016a57600080fd5b5080351515906020810135906040013561051e565b60408051918252519081900360200190f35b6101996105ee565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610119610610565b610119600480360360208110156101e057600080fd5b5035610727565b610119600480360360408110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561080a565b610199610934565b61017f610950565b610238610956565b604080519115158252519081900360200190f35b61017f61095f565b6101196004803603602081101561026a57600080fd5b5035610965565b6101196004803603602081101561028757600080fd5b50351515610a48565b610238610b5c565b610119600480360360208110156102ae57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b6a565b6102d3610d0b565b73ffffffffffffffffffffffffffffffffffffffff166102f1610934565b73ffffffffffffffffffffffffffffffffffffffff161461037357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380548215157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116811790915560408051918252517fe97fa32ceb811a18d1b14115b17ae0034db328b2e2ca987d9922cbf47b03fad69181900360200190a150565b6103e0610d0b565b73ffffffffffffffffffffffffffffffffffffffff166103fe610934565b73ffffffffffffffffffffffffffffffffffffffff161461048057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600354604080517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052915162010000909304909116916307b18bde9160448082019260009290919082900301818387803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050505050565b60035460009060ff16156105e35783156105b157600354610100900460ff166105a857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4c617965725a65726f3a205a524f206973206e6f7420656e61626c6564000000604482015290519081900360640190fd5b506002546105e7565b6105dc6127106105d66001546105d08688610d0f90919063ffffffff16565b90610d8c565b90610dff565b90506105e7565b5060005b9392505050565b60035462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b610618610d0b565b73ffffffffffffffffffffffffffffffffffffffff16610636610934565b73ffffffffffffffffffffffffffffffffffffffff16146106b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b61072f610d0b565b73ffffffffffffffffffffffffffffffffffffffff1661074d610934565b73ffffffffffffffffffffffffffffffffffffffff16146107cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60028190556040805182815290517f804d99c2291bc4a6be11ff016f65cfc644f8d488ef55a5318d0217a1fdc4e9fd9181900360200190a150565b610812610d0b565b73ffffffffffffffffffffffffffffffffffffffff16610830610934565b73ffffffffffffffffffffffffffffffffffffffff16146108b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600354604080517f8525b71100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905291516201000090930490911691638525b7119160448082019260009290919082900301818387803b15801561050257600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60015481565b60035460ff1681565b60025481565b61096d610d0b565b73ffffffffffffffffffffffffffffffffffffffff1661098b610934565b73ffffffffffffffffffffffffffffffffffffffff1614610a0d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60018190556040805182815290517ff2a316ed322d32481373e7ed416bc6c1ec2afcfa3bf2f1df9eb4300e1a9620e39181900360200190a150565b610a50610d0b565b73ffffffffffffffffffffffffffffffffffffffff16610a6e610934565b73ffffffffffffffffffffffffffffffffffffffff1614610af057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6003805482151561010081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff9092169190911790915560408051918252517f279d3ec34d7b325d10d4b9d6c63464877a6fe6ac3997f7508bdb3b9d2d5050b39181900360200190a150565b600354610100900460ff1681565b610b72610d0b565b73ffffffffffffffffffffffffffffffffffffffff16610b90610934565b73ffffffffffffffffffffffffffffffffffffffff1614610c1257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610e816026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b600082820183811015610d8357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600082610d9b57506000610d86565b82820282848281610da857fe5b0414610d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610ea76021913960400191505060405180910390fd5b6000808211610e6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610e7857fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e505285b01e4be17442a971fe52b4e43f20ad88fab01a50d71272ea83a146da464736f6c634300070600330000000000000000000000004d73adb72bc3dd368966edd0f0b2148401a178e2

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

0000000000000000000000004d73adb72bc3dd368966edd0f0b2148401a178e2

-----Decoded View---------------
Arg [0] : _ulnv2 (address): 0x4d73adb72bc3dd368966edd0f0b2148401a178e2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004d73adb72bc3dd368966edd0f0b2148401a178e2


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.