ETH Price: $2,663.23 (-0.21%)

Contract

0x03797bf119D76A8B400Ff6770bFF3EA45fbf2CD6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Bulk Update Opti...208353772024-09-26 14:26:113 days ago1727360771IN
0x03797bf1...45fbf2CD6
0 ETH0.0083926629.05472616
Bulk Update Opti...208353752024-09-26 14:25:473 days ago1727360747IN
0x03797bf1...45fbf2CD6
0 ETH0.0096929429.08121167
Bulk Update Opti...208353742024-09-26 14:25:353 days ago1727360735IN
0x03797bf1...45fbf2CD6
0 ETH0.0091924228.30023898
Bulk Update Opti...208353732024-09-26 14:25:233 days ago1727360723IN
0x03797bf1...45fbf2CD6
0 ETH0.0084350827.04297982
Bulk Set Trade D...208353332024-09-26 14:17:233 days ago1727360243IN
0x03797bf1...45fbf2CD6
0 ETH0.0174973130.713481
Bulk Set Trade D...208353302024-09-26 14:16:473 days ago1727360207IN
0x03797bf1...45fbf2CD6
0 ETH0.0285923730.74795982
Bulk Process Dep...208340902024-09-26 10:07:593 days ago1727345279IN
0x03797bf1...45fbf2CD6
0 ETH0.0008097513.78854518
Bulk Process Dep...208340892024-09-26 10:07:473 days ago1727345267IN
0x03797bf1...45fbf2CD6
0 ETH0.0015612.2602358
Bulk Process Dep...208340872024-09-26 10:07:233 days ago1727345243IN
0x03797bf1...45fbf2CD6
0 ETH0.0014995112.32072158
Bulk Process Dep...208340862024-09-26 10:07:113 days ago1727345231IN
0x03797bf1...45fbf2CD6
0 ETH0.0057549812.29597886
Bulk Process Dep...208340842024-09-26 10:06:473 days ago1727345207IN
0x03797bf1...45fbf2CD6
0 ETH0.0023073411.94356533
Bulk Process Dep...208340822024-09-26 10:06:233 days ago1727345183IN
0x03797bf1...45fbf2CD6
0 ETH0.0014413512.06882292
Bulk Open Vault ...208340762024-09-26 10:05:113 days ago1727345111IN
0x03797bf1...45fbf2CD6
0 ETH0.0019730312.03571897
Bulk Open Vault ...208340752024-09-26 10:04:593 days ago1727345099IN
0x03797bf1...45fbf2CD6
0 ETH0.0030719812.33610088
Bulk Rollover Va...208286092024-09-25 15:47:354 days ago1727279255IN
0x03797bf1...45fbf2CD6
0 ETH0.0056599621.38077354
Bulk Rollover Va...208286082024-09-25 15:47:234 days ago1727279243IN
0x03797bf1...45fbf2CD6
0 ETH0.0089928521.78168683
Bulk Process Wit...208286052024-09-25 15:46:474 days ago1727279207IN
0x03797bf1...45fbf2CD6
0 ETH0.0013286622.26055828
Bulk Process Wit...208286042024-09-25 15:46:354 days ago1727279195IN
0x03797bf1...45fbf2CD6
0 ETH0.0027048922.57256712
Bulk Process Wit...208286032024-09-25 15:46:234 days ago1727279183IN
0x03797bf1...45fbf2CD6
0 ETH0.0056329122.49970133
Bulk Process Wit...208286012024-09-25 15:45:594 days ago1727279159IN
0x03797bf1...45fbf2CD6
0 ETH0.0025929921.64090852
Bulk Process Wit...208286002024-09-25 15:45:474 days ago1727279147IN
0x03797bf1...45fbf2CD6
0 ETH0.0026531121.66300322
Bulk Process Wit...208285992024-09-25 15:45:354 days ago1727279135IN
0x03797bf1...45fbf2CD6
0 ETH0.0024464419.95600579
Bulk Collect Fee...208285312024-09-25 15:31:594 days ago1727278319IN
0x03797bf1...45fbf2CD6
0 ETH0.0109234624.65926254
Bulk Collect Fee...208285292024-09-25 15:31:354 days ago1727278295IN
0x03797bf1...45fbf2CD6
0 ETH0.0163258724.5419997
Bulk Move Assets...208285112024-09-25 15:27:594 days ago1727278079IN
0x03797bf1...45fbf2CD6
0 ETH0.0164414926.24706037
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353772024-09-26 14:26:113 days ago1727360771
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
208353752024-09-26 14:25:473 days ago1727360747
0x03797bf1...45fbf2CD6
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BulkActionsEntry

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : BulkActionsEntry.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

import { IBulkActionsEntry } from "./interfaces/IBulkActionsEntry.sol";
import { ICegaState } from "./interfaces/ICegaState.sol";
import { IProduct } from "./interfaces/IProduct.sol";
import { IFCNVault } from "./interfaces/IFCNVault.sol";
import { FCNVaultMetadata, VaultStatus } from "./Structs.sol";

contract BulkActionsEntry is IBulkActionsEntry {
    // IMMUTABLES

    bytes32 public constant TRADER_ADMIN_ROLE = keccak256("TRADER_ADMIN_ROLE");

    ICegaState public immutable cegaState;

    // MODIFIERS

    modifier onlyTraderAdmin() {
        require(cegaState.isTraderAdmin(msg.sender), "403:TA");
        _;
    }

    // CONSTRUCTOR

    constructor(address _cegaState) {
        cegaState = ICegaState(_cegaState);
    }

    // EXTERNAL FUNCTIONS

    function bulkOpenVaultDeposits(address[] calldata vaultAddresses) external onlyTraderAdmin {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).openVaultDeposits(vaultAddresses[i]);
        }
    }

    function bulkProcessDepositQueues(ProcessQueueParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            _getProduct(params[i].vaultAddress).processDepositQueue(params[i].vaultAddress, params[i].maxProcessCount);
        }
    }

    function bulkSetTradeData(SetTradeDataParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            _getProduct(params[i].vaultAddress).setTradeData(
                params[i].vaultAddress,
                params[i].tradeDate,
                params[i].tradeExpiry,
                params[i].aprBps,
                params[i].tenorInDays
            );
        }
    }

    function bulkUpdateOptionBarriers(UpdateOptionBarrierParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            _getProduct(params[i].vaultAddress).updateOptionBarrier(
                params[i].vaultAddress,
                params[i].index,
                params[i].asset,
                params[i].strikeAbsoluteValue,
                params[i].barrierAbsoluteValue
            );
        }
    }

    function bulkSendAssetsToTrade(SendAssetsToTradeParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            FCNVaultMetadata memory metadata = _getProduct(params[i].vaultAddress).getVaultMetadata(
                params[i].vaultAddress
            );

            require(metadata.vaultStatus == VaultStatus.NotTraded, "500:WS");

            _getProduct(params[i].vaultAddress).sendAssetsToTrade(
                params[i].vaultAddress,
                params[i].receiver,
                metadata.underlyingAmount
            );
        }
    }

    function bulkCheckBarriers(address[] calldata vaultAddresses) external {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).checkBarriers(vaultAddresses[i]);
        }
    }

    function bulkCalculateCurrentYield(address[] calldata vaultAddresses) external {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).calculateCurrentYield(vaultAddresses[i]);
        }
    }

    function bulkCalculateVaultFinalPayoffs(address[] calldata vaultAddresses) external {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).calculateVaultFinalPayoff(vaultAddresses[i]);
        }
    }

    function bulkMoveAssetsToProducts(MoveAssetsToProductParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            FCNVaultMetadata memory metadata = _getProduct(params[i].vaultAddress).getVaultMetadata(
                params[i].vaultAddress
            );
            require(metadata.vaultStatus == VaultStatus.PayoffCalculated, "500:WS");
            require(params[i].amount + metadata.currentAssetAmount <= metadata.vaultFinalPayoff, "400:IncorrectAmount");

            cegaState.moveAssetsToProduct(params[i].productName, params[i].vaultAddress, params[i].amount);
        }
    }

    function bulkCollectFees(address[] calldata vaultAddresses) external onlyTraderAdmin {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).collectFees(vaultAddresses[i]);
        }
    }

    function bulkProcessWithdrawalQueues(ProcessQueueParams[] calldata params) external onlyTraderAdmin {
        for (uint256 i = 0; i < params.length; i++) {
            _getProduct(params[i].vaultAddress).processWithdrawalQueue(
                params[i].vaultAddress,
                params[i].maxProcessCount
            );
        }
    }

    function bulkRolloverVaults(address[] calldata vaultAddresses) external onlyTraderAdmin {
        for (uint256 i = 0; i < vaultAddresses.length; i++) {
            _getProduct(vaultAddresses[i]).rolloverVault(vaultAddresses[i]);
        }
    }

    // INTERNAL FUNCTIONS

    function _getProduct(address vaultAddress) internal view returns (IProduct) {
        return IProduct(IFCNVault(vaultAddress).fcnProduct());
    }
}

File 2 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)

pragma solidity ^0.8.0;

import "../token/ERC20/IERC20.sol";

File 3 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 4 of 8 : IBulkActionsEntry.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

interface IBulkActionsEntry {
    // STRUCTS

    struct ProcessQueueParams {
        address vaultAddress;
        uint256 maxProcessCount;
    }

    struct SetTradeDataParams {
        address vaultAddress;
        uint256 tradeDate;
        uint256 tradeExpiry;
        uint256 aprBps;
        uint256 tenorInDays;
    }

    struct UpdateOptionBarrierParams {
        address vaultAddress;
        uint256 index;
        string asset;
        uint256 strikeAbsoluteValue;
        uint256 barrierAbsoluteValue;
    }

    struct SendAssetsToTradeParams {
        address vaultAddress;
        address receiver;
        uint256 amount;
    }

    struct MoveAssetsToProductParams {
        string productName;
        address vaultAddress;
        uint256 amount;
    }

    // FUNCTIONS

    function bulkOpenVaultDeposits(address[] calldata vaultAddresses) external;

    function bulkProcessDepositQueues(ProcessQueueParams[] calldata params) external;

    function bulkSetTradeData(SetTradeDataParams[] calldata params) external;

    function bulkUpdateOptionBarriers(UpdateOptionBarrierParams[] calldata params) external;

    function bulkSendAssetsToTrade(SendAssetsToTradeParams[] calldata params) external;

    function bulkCheckBarriers(address[] calldata vaultAddresses) external;

    function bulkCalculateCurrentYield(address[] calldata vaultAddresses) external;

    function bulkCalculateVaultFinalPayoffs(address[] calldata vaultAddresses) external;

    function bulkMoveAssetsToProducts(MoveAssetsToProductParams[] calldata params) external;

    function bulkCollectFees(address[] calldata vaultAddresses) external;

    function bulkProcessWithdrawalQueues(ProcessQueueParams[] calldata params) external;

    function bulkRolloverVaults(address[] calldata vaultAddresses) external;
}

File 5 of 8 : ICegaState.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

interface ICegaState {
    function marketMakerAllowList(address marketMaker) external view returns (bool);

    function products(string memory productName) external view returns (address);

    function oracleAddresses(string memory oracleName) external view returns (address);

    function oracleNames() external view returns (string[] memory);

    function productNames() external view returns (string[] memory);

    function feeRecipient() external view returns (address);

    function isDefaultAdmin(address sender) external view returns (bool);

    function isTraderAdmin(address sender) external view returns (bool);

    function isOperatorAdmin(address sender) external view returns (bool);

    function isServiceAdmin(address sender) external view returns (bool);

    function getOracleNames() external view returns (string[] memory);

    function addOracle(string memory oracleName, address oracleAddress) external;

    function removeOracle(string memory oracleName) external;

    function getProductNames() external view returns (string[] memory);

    function addProduct(string memory productName, address product) external;

    function removeProduct(string memory productName) external;

    function updateMarketMakerPermission(address marketMaker, bool allow) external;

    function setFeeRecipient(address _feeRecipient) external;

    function moveAssetsToProduct(string memory productName, address vaultAddress, uint256 amount) external;
}

File 6 of 8 : IFCNVault.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

import { IERC20 } from "@openzeppelin/contracts/interfaces/IERC20.sol";

interface IFCNVault is IERC20 {
    function asset() external view returns (address);

    function owner() external view returns (address);

    function fcnProduct() external view returns (address);

    function totalAssets() external view returns (uint256);

    function convertToAssets(uint256 shares) external view returns (uint256);

    function convertToShares(uint256 assets) external view returns (uint256);

    function deposit(uint256 assets, address receiver) external returns (uint256);

    function redeem(uint256 shares) external returns (uint256);
}

File 7 of 8 : IProduct.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

import { Deposit, FCNVaultMetadata, OptionBarrierType, OptionBarrier, VaultStatus, Withdrawal } from "../Structs.sol";

interface IProduct {
    // View functions
    function asset() external view returns (address);

    function cegaState() external view returns (address);

    function getVaultMetadata(address vaultAddress) external view returns (FCNVaultMetadata memory);

    function managementFeeBps() external view returns (uint256);

    function minDepositAmount() external view returns (uint256);

    function minWithdrawalAmount() external view returns (uint256);

    function name() external view returns (string memory);

    function vaults(
        address vaultAddress
    )
        external
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            address,
            VaultStatus,
            bool
        );

    function withdrawalQueues(address vaultAddress, uint256 index) external view returns (Withdrawal memory);

    function yieldFeeBps() external view returns (uint256);

    // External functions

    function addOptionBarrier(address vaultAddress, OptionBarrier calldata optionBarrier) external;

    function addToWithdrawalQueue(address vaultAddress, uint256 amountShares, address receiver) external;

    function calculateCurrentYield(address vaultAddress) external;

    function calculateVaultFinalPayoff(address vaultAddress) external returns (uint256 vaultFinalPayoff);

    function checkBarriers(address vaultAddress) external;

    function collectFees(address vaultAddress) external;

    function openVaultDeposits(address vaultAddress) external;

    function processDepositQueue(address vaultAddress, uint256 maxProcessCount) external;

    function processWithdrawalQueue(address vaultAddress, uint256 maxProcessCount) external;

    function receiveAssetsFromCegaState(address vaultAddress, uint256 amount) external;

    function removeOptionBarrier(address vaultAddress, uint256 index, string calldata _asset) external;

    function removeVault(uint256 index) external;

    function rolloverVault(address vaultAddress) external;

    function sendAssetsToTrade(address vaultAddress, address receiver, uint256 amount) external;

    function setIsDepositQueueOpen(bool _isDepositQueueOpen) external;

    function setKnockInStatus(address vaultAddress, bool newState) external;

    function setManagementFeeBps(uint256 _managementFeeBps) external;

    function setMaxDepositAmountLimit(uint256 _maxDepositAmountLimit) external;

    function setMinDepositAmount(uint256 _minDepositAmount) external;

    function setMinWithdrawalAmount(uint256 _minWithdrawalAmount) external;

    function setTradeData(
        address vaultAddress,
        uint256 _tradeDate,
        uint256 _tradeExpiry,
        uint256 _aprBps,
        uint256 _tenorInDays
    ) external;

    function setVaultMetadata(address vaultAddress, FCNVaultMetadata calldata metadata) external;

    function setVaultStatus(address vaultAddress, VaultStatus _vaultStatus) external;

    function setYieldFeeBps(uint256 _yieldFeeBps) external;

    function updateOptionBarrier(
        address vaultAddress,
        uint256 index,
        string calldata _asset,
        uint256 _strikeAbsoluteValue,
        uint256 _barrierAbsoluteValue
    ) external;

    function updateOptionBarrierOracle(
        address vaultAddress,
        uint256 index,
        string calldata _asset,
        string memory newOracleName
    ) external;
}

File 8 of 8 : Structs.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;

enum OptionBarrierType {
    None,
    KnockIn
}

struct Deposit {
    uint256 amount;
    address receiver;
}

struct Withdrawal {
    uint256 amountShares;
    address receiver;
}

enum VaultStatus {
    DepositsClosed,
    DepositsOpen,
    NotTraded,
    Traded,
    TradeExpired,
    PayoffCalculated,
    FeesCollected,
    WithdrawalQueueProcessed,
    Zombie
}

struct OptionBarrier {
    uint256 barrierBps;
    uint256 barrierAbsoluteValue;
    uint256 strikeBps;
    uint256 strikeAbsoluteValue;
    string asset;
    string oracleName;
    OptionBarrierType barrierType;
}

struct FCNVaultMetadata {
    uint256 vaultStart;
    uint256 tradeDate;
    uint256 tradeExpiry;
    uint256 aprBps;
    uint256 tenorInDays;
    uint256 underlyingAmount; // This is how many assets were ever deposited into the vault
    uint256 currentAssetAmount; // This is how many assets are currently allocated for the vault (not sent for trade)
    uint256 totalCouponPayoff;
    uint256 vaultFinalPayoff;
    uint256 queuedWithdrawalsSharesAmount;
    uint256 queuedWithdrawalsCount;
    uint256 optionBarriersCount;
    uint256 leverage;
    address vaultAddress;
    VaultStatus vaultStatus;
    bool isKnockedIn;
    OptionBarrier[] optionBarriers;
}

struct RoundData {
    int256 answer;
    uint256 startedAt;
    uint256 updatedAt;
    uint80 answeredInRound;
}

struct LeverageMetadata {
    bool isAllowed;
    bool isDepositQueueOpen;
    uint256 maxDepositAmountLimit;
    uint256 sumVaultUnderlyingAmounts;
    uint256 queuedDepositsTotalAmount;
    address[] vaultAddresses;
}

struct FCNVaultAssetInfo {
    address vaultAddress;
    uint256 totalAssets;
    uint256 totalSupply;
    uint256 inputAssets;
    uint256 outputShares;
    uint256 inputShares;
    uint256 outputAssets;
}

Settings
{
  "metadata": {
    "bytecodeHash": "none"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200,
    "details": {
      "yul": true
    }
  },
  "viaIR": true,
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_cegaState","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"TRADER_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkCalculateCurrentYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkCalculateVaultFinalPayoffs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkCheckBarriers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkCollectFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"productName","type":"string"},{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IBulkActionsEntry.MoveAssetsToProductParams[]","name":"params","type":"tuple[]"}],"name":"bulkMoveAssetsToProducts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkOpenVaultDeposits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"uint256","name":"maxProcessCount","type":"uint256"}],"internalType":"struct IBulkActionsEntry.ProcessQueueParams[]","name":"params","type":"tuple[]"}],"name":"bulkProcessDepositQueues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"uint256","name":"maxProcessCount","type":"uint256"}],"internalType":"struct IBulkActionsEntry.ProcessQueueParams[]","name":"params","type":"tuple[]"}],"name":"bulkProcessWithdrawalQueues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultAddresses","type":"address[]"}],"name":"bulkRolloverVaults","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IBulkActionsEntry.SendAssetsToTradeParams[]","name":"params","type":"tuple[]"}],"name":"bulkSendAssetsToTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"uint256","name":"tradeDate","type":"uint256"},{"internalType":"uint256","name":"tradeExpiry","type":"uint256"},{"internalType":"uint256","name":"aprBps","type":"uint256"},{"internalType":"uint256","name":"tenorInDays","type":"uint256"}],"internalType":"struct IBulkActionsEntry.SetTradeDataParams[]","name":"params","type":"tuple[]"}],"name":"bulkSetTradeData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"string","name":"asset","type":"string"},{"internalType":"uint256","name":"strikeAbsoluteValue","type":"uint256"},{"internalType":"uint256","name":"barrierAbsoluteValue","type":"uint256"}],"internalType":"struct IBulkActionsEntry.UpdateOptionBarrierParams[]","name":"params","type":"tuple[]"}],"name":"bulkUpdateOptionBarriers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cegaState","outputs":[{"internalType":"contract ICegaState","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a0346100ab57601f61188338819003918201601f19168301916001600160401b038311848410176100b0578084926020946040528339810103126100ab57516001600160a01b038116908190036100ab576080526040516117bc90816100c7823960805181818161011901528181610468015281816106000152818161080e0152818161092a01528181610a8a01528181610b8301528181610c0101528181610ebc01526110680152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816304519a2a14610ff6575080631615a38614610e4857806322cbb4ba14610bb25780632f87045c14610b6e57838163753a78dc14610a315781638340bc6f146108f25781638aa20521146107b55781639ae2dd4d1461070b5781639d0ee11d146105c857508063a115a37c14610412578063c6134df2146103d357838163ea5498211461031b57508063efdc64f41461023c5763f1a346e8146100c157600080fd5b8291346102385760203660031901126102385781356001600160401b038111610233576100f19036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f000000000000000000000000000000000000000000000000000000000000000088165afa80156102295785906101eb575b61015391506112f8565b835b878110610160578480f35b8361017c610177610172848c87611352565b611378565b611732565b1661018b610172838b86611352565b90803b156101e757875163a480ca7960e01b8152918616828a0152869082908690829084905af180156101dd57906101c992916101ce575b5061132d565b610155565b6101d7906112a1565b386101c3565b87513d88823e3d90fd5b8680fd5b506020813d8211610221575b81610204602093836112ca565b8101031261021d57610218610153916112eb565b610149565b8480fd5b3d91506101f7565b86513d87823e3d90fd5b505050fd5b5050fd5b503461031757602090816003193601126103135780356001600160401b03811161021d5761026d9036908301611220565b9390855b85811061027c578680f35b6001600160a01b038581610297610177610172868c89611352565b169160246102a9610172868c89611352565b8b8851958694859363bcd0fb2f60e01b8552168b8401525af18015610309579086916102e0575b50506102db9061132d565b610271565b813d8311610302575b6102f381836112ca565b810103126101e75784386102d0565b503d6102e9565b84513d8a823e3d90fd5b8380fd5b8280fd5b929050346102385760203660031901126102385781356001600160401b0381116102335761034c9036908401611220565b8491945b81811061035b578280f35b6001600160a01b038061037561017761017285878c611352565b169061038561017284868b611352565b90823b156103cf5760248692838951958694859363b379e0bf60e01b8552168c8401525af180156103c557906103c092916101ce575061132d565b610350565b85513d86823e3d90fd5b8580fd5b50503461040e578160031936011261040e57602090517f264001e901c3e181f17cd2c6cec22c2e23d9dd662da12dcafc2619e16b7cd0248152f35b5080fd5b50346103175760209182600319360112610313578382356001600160401b03811161040e576104449036908501611220565b8351630ddd3b3160e21b81523381870152602495926001600160a01b0391888189817f000000000000000000000000000000000000000000000000000000000000000087165afa80156101dd578690610592575b6104a291506112f8565b845b8381106104af578580f35b826104c16101776101728488876113ac565b166104d06101728387866113ac565b8a6104dc8488876113ac565b0135916104f66104ed8589886113ac565b8b8101906113ce565b6060610506878b8a9695966113ac565b0135946080610516888c8b6113ac565b013594833b1561058e578e968d968f8e978d968a9661055a93519c8d9b8c9a8b99638fef16d560e01b8b52169089015287015260a0604487015260a4860191611400565b916064840152608483015203925af18015610584579061057f92916101ce575061132d565b6104a4565b88513d89823e3d90fd5b8c80fd5b508881813d83116105c1575b6105a881836112ca565b810103126103cf576105bc6104a2916112eb565b610498565b503d61059e565b92905034610238576105d936611255565b8251630ddd3b3160e21b815233858201526001600160a01b039592919060209081816024817f00000000000000000000000000000000000000000000000000000000000000008c165afa80156102295785906106d5575b61063a91506112f8565b835b828110610647578480f35b8761065961017761017284878961138c565b1661066861017283868861138c565b8361067484878961138c565b0135823b156106d157885163f14c1b7960e01b81526001600160a01b03909216828b0190815260208101919091529091879183919082908490829060400103925af180156101dd57906106cc92916101ce575061132d565b61063c565b8780fd5b508181813d8311610704575b6106eb81836112ca565b8101031261021d576106ff61063a916112eb565b610630565b503d6106e1565b929050346102385760203660031901126102385781356001600160401b0381116102335761073c9036908401611220565b8491945b81811061074b578280f35b6001600160a01b038061076561017761017285878c611352565b169061077561017284868b611352565b90823b156103cf5760248692838951958694859363b732f2f160e01b8552168c8401525af180156103c557906107b092916101ce575061132d565b610740565b929050346102385760203660031901126102385781356001600160401b038111610233576107e69036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f000000000000000000000000000000000000000000000000000000000000000088165afa80156102295785906108b8575b61084891506112f8565b835b878110610855578480f35b83610867610177610172848c87611352565b16610876610172838b86611352565b90803b156101e7578751632bd492a160e11b8152918616828a0152869082908690829084905af180156101dd57906108b392916101ce575061132d565b61084a565b506020813d82116108ea575b816108d1602093836112ca565b8101031261021d576108e5610848916112eb565b61083e565b3d91506108c4565b929050346102385761090336611255565b8251630ddd3b3160e21b815233858201526001600160a01b039592919060209081816024817f00000000000000000000000000000000000000000000000000000000000000008c165afa80156102295785906109fb575b61096491506112f8565b835b828110610971578480f35b8761098361017761017284878961138c565b1661099261017283868861138c565b8361099e84878961138c565b0135823b156106d15788516340e8d70360e01b81526001600160a01b03909216828b0190815260208101919091529091879183919082908490829060400103925af180156101dd57906109f692916101ce575061132d565b610966565b508181813d8311610a2a575b610a1181836112ca565b8101031261021d57610a25610964916112eb565b61095a565b503d610a07565b929050346102385760203660031901126102385781356001600160401b03811161023357610a629036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f000000000000000000000000000000000000000000000000000000000000000088165afa8015610229578590610b34575b610ac491506112f8565b835b878110610ad1578480f35b83610ae3610177610172848c87611352565b16610af2610172838b86611352565b90803b156101e7578751632d367ead60e21b8152918616828a0152869082908690829084905af180156101dd5790610b2f92916101ce575061132d565b610ac6565b506020813d8211610b66575b81610b4d602093836112ca565b8101031261021d57610b61610ac4916112eb565b610aba565b3d9150610b40565b50503461040e578160031936011261040e57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50903461031757602090816003193601126103135782356001600160401b03811161021d57610be49036908501611220565b8251630ddd3b3160e21b8152338682015290946001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169360249391929187818681895afa8015610e3e578a90610e04575b610c4791506112f8565b885b89898210610c545780f35b89908587610c828c610c748785610c7a61017785610c74858f8e90611710565b01611378565b16978a611710565b8b51948593849263dc4f1e4960e01b845216898301525afa908115610d7c578b91610de2575b506101c08101516009811015610dd0576005610cc491146116db565b87610cd0838c86611710565b01359060c08101518201809211610dbe57610100015110610d8657888a89610d188a610d1f86610d0a610d0482898c611710565b806113ce565b949095610c74838a8d611710565b9689611710565b0135938a3b15610313578b5163ba4fe16560e01b815260608982015294859384938b91610d50916064870191611400565b92168b84015260448301520381838b5af18015610d7c5790610d7792916101ce575061132d565b610c49565b88513d8d823e3d90fd5b865162461bcd60e51b8152808401899052601381870152720d0c0c0e925b98dbdc9c9958dd105b5bdd5b9d606a1b6044820152606490fd5b634e487b7160e01b8c5260118552868cfd5b634e487b7160e01b8c5260218552868cfd5b610dfe91503d808d833e610df681836112ca565b8101906114b5565b38610ca8565b508781813d8311610e37575b610e1a81836112ca565b81010312610e3357610e2e610c47916112eb565b610c3d565b8980fd5b503d610e10565b87513d8c823e3d90fd5b5034610317576020918260031936011261031357838235936001600160401b039485811161031757366023820112156103175780850135958611610317576024918282019183369160a08a02010111610313578451630ddd3b3160e21b815233878201526001600160a01b039390828183817f000000000000000000000000000000000000000000000000000000000000000089165afa80156101dd578690610fc0575b610ef691506112f8565b845b888110610f03578580f35b84610f15610177610172848d8961139c565b16878a86866080610f60876060610f578288610f3561017283838c61139c565b97610f4183838c61139c565b01359a610f4f83838c61139c565b01359861139c565b0135958c61139c565b013593853b15610fbc578d958c958c958f95889460a497519a8b998a98638e575a8560e01b8a5216908801528c8701526044860152606485015260848401525af180156105845790610fb792916101ce575061132d565b610ef8565b8b80fd5b508281813d8311610fef575b610fd681836112ca565b810103126103cf57610fea610ef6916112eb565b610eec565b503d610fcc565b90508391346103175760209384600319360112610313576001600160401b039282358481116103cf57366023820112156103cf57808401359485116103cf5760249081810190823691606089020101116101e757630ddd3b3160e21b835233858401526001600160a01b0392888184817f000000000000000000000000000000000000000000000000000000000000000088165afa80156112165788906111e0575b6110a291506112f8565b865b8681106110af578780f35b836110c1610177610172848b87611421565b168885856110d3610172868d89611421565b8951948593849263dc4f1e4960e01b8452168c8301525afa9081156111aa5789916111c6575b506101c081015160098110156111b4579061111760028a93146116db565b85611129610177610172868689611421565b169060a061114a8d610c7487611143610172828a8d611421565b978a611421565b91015190823b15610fbc57885163010d690960e31b8152938816848b0152871686840152604483015289908290606490829084905af180156111aa5790611196929161119b575061132d565b6110a4565b6111a4906112a1565b8a6101c3565b86513d8b823e3d90fd5b634e487b7160e01b8a5260218852848afd5b6111da91503d808b833e610df681836112ca565b8a6110f9565b508881813d831161120f575b6111f681836112ca565b810103126106d15761120a6110a2916112eb565b611098565b503d6111ec565b85513d8a823e3d90fd5b9181601f84011215611250578235916001600160401b038311611250576020808501948460051b01011161125057565b600080fd5b906020600319830112611250576004356001600160401b039283821161125057806023830112156112505781600401359384116112505760248460061b83010111611250576024019190565b6001600160401b0381116112b457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176112b457604052565b5190811515820361125057565b156112ff57565b60405162461bcd60e51b81526020600482015260066024820152653430333a544160d01b6044820152606490fd5b600019811461133c5760010190565b634e487b7160e01b600052601160045260246000fd5b91908110156113625760051b0190565b634e487b7160e01b600052603260045260246000fd5b356001600160a01b03811681036112505790565b91908110156113625760061b0190565b91908110156113625760a0020190565b91908110156113625760051b81013590609e1981360301821215611250570190565b903590601e198136030182121561125057018035906001600160401b0382116112505760200191813603831361125057565b908060209392818452848401376000828201840152601f01601f1916010190565b9190811015611362576060020190565b51906001600160a01b038216820361125057565b919080601f84011215611250578251906001600160401b0382116112b4576040519160209161147d601f8301601f19168401856112ca565b8184528282870101116112505760005b8181106114a257508260009394955001015290565b858101830151848201840152820161148d565b90602080838303126112505782516001600160401b03938482116112505701906102209384838503126112505760408051958601868110838211176112b457815283518652828401518387015280840151818701526060908185015182880152608090818601518289015260a080870151818a015260c09384880151858b015260e09182890151838c0152610100808a0151908c0152610120808a0151908c0152610140808a0151908c0152610160808a0151908c0152610180808a0151908c01526101a0611585818b01611431565b908c01526101c0808a0151906009821015611250578c01526101e06115ab818b016112eb565b908c01526102009889810151908882116112505701968a601f890112156112505787519a818c116112b4578b60051b968a8088519e8f906115ee838d01836112ca565b815201988b010199828b11611250578b8101985b8b8a1061161c575050505050505050505050505082015290565b89518581116112505782019088601f19838703011261125057895191898301838110888211176116c6578f908c528082015184528b82015190840152888101518b840152848101518984015287810151878111611250578f879061168292840101611445565b858401528c81015190878211611250578f876116a2918d94840101611445565b89850152015190600282101561125057828f93928e85940152815201990198611602565b60246000634e487b7160e01b81526041600452fd5b156116e257565b60405162461bcd60e51b81526020600482015260066024820152653530303a575360d01b6044820152606490fd5b91908110156113625760051b81013590605e1981360301821215611250570190565b604051631634c6a360e31b81526001600160a01b03916020908290600490829086165afa9081156117a35760009161176957501690565b906020823d821161179b575b81611782602093836112ca565b81010312611798575061179490611431565b1690565b80fd5b3d9150611775565b6040513d6000823e3d90fdfea164736f6c6343000811000a0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b

Deployed Bytecode

0x6080604081815260048036101561001557600080fd5b600092833560e01c90816304519a2a14610ff6575080631615a38614610e4857806322cbb4ba14610bb25780632f87045c14610b6e57838163753a78dc14610a315781638340bc6f146108f25781638aa20521146107b55781639ae2dd4d1461070b5781639d0ee11d146105c857508063a115a37c14610412578063c6134df2146103d357838163ea5498211461031b57508063efdc64f41461023c5763f1a346e8146100c157600080fd5b8291346102385760203660031901126102385781356001600160401b038111610233576100f19036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b88165afa80156102295785906101eb575b61015391506112f8565b835b878110610160578480f35b8361017c610177610172848c87611352565b611378565b611732565b1661018b610172838b86611352565b90803b156101e757875163a480ca7960e01b8152918616828a0152869082908690829084905af180156101dd57906101c992916101ce575b5061132d565b610155565b6101d7906112a1565b386101c3565b87513d88823e3d90fd5b8680fd5b506020813d8211610221575b81610204602093836112ca565b8101031261021d57610218610153916112eb565b610149565b8480fd5b3d91506101f7565b86513d87823e3d90fd5b505050fd5b5050fd5b503461031757602090816003193601126103135780356001600160401b03811161021d5761026d9036908301611220565b9390855b85811061027c578680f35b6001600160a01b038581610297610177610172868c89611352565b169160246102a9610172868c89611352565b8b8851958694859363bcd0fb2f60e01b8552168b8401525af18015610309579086916102e0575b50506102db9061132d565b610271565b813d8311610302575b6102f381836112ca565b810103126101e75784386102d0565b503d6102e9565b84513d8a823e3d90fd5b8380fd5b8280fd5b929050346102385760203660031901126102385781356001600160401b0381116102335761034c9036908401611220565b8491945b81811061035b578280f35b6001600160a01b038061037561017761017285878c611352565b169061038561017284868b611352565b90823b156103cf5760248692838951958694859363b379e0bf60e01b8552168c8401525af180156103c557906103c092916101ce575061132d565b610350565b85513d86823e3d90fd5b8580fd5b50503461040e578160031936011261040e57602090517f264001e901c3e181f17cd2c6cec22c2e23d9dd662da12dcafc2619e16b7cd0248152f35b5080fd5b50346103175760209182600319360112610313578382356001600160401b03811161040e576104449036908501611220565b8351630ddd3b3160e21b81523381870152602495926001600160a01b0391888189817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b87165afa80156101dd578690610592575b6104a291506112f8565b845b8381106104af578580f35b826104c16101776101728488876113ac565b166104d06101728387866113ac565b8a6104dc8488876113ac565b0135916104f66104ed8589886113ac565b8b8101906113ce565b6060610506878b8a9695966113ac565b0135946080610516888c8b6113ac565b013594833b1561058e578e968d968f8e978d968a9661055a93519c8d9b8c9a8b99638fef16d560e01b8b52169089015287015260a0604487015260a4860191611400565b916064840152608483015203925af18015610584579061057f92916101ce575061132d565b6104a4565b88513d89823e3d90fd5b8c80fd5b508881813d83116105c1575b6105a881836112ca565b810103126103cf576105bc6104a2916112eb565b610498565b503d61059e565b92905034610238576105d936611255565b8251630ddd3b3160e21b815233858201526001600160a01b039592919060209081816024817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b8c165afa80156102295785906106d5575b61063a91506112f8565b835b828110610647578480f35b8761065961017761017284878961138c565b1661066861017283868861138c565b8361067484878961138c565b0135823b156106d157885163f14c1b7960e01b81526001600160a01b03909216828b0190815260208101919091529091879183919082908490829060400103925af180156101dd57906106cc92916101ce575061132d565b61063c565b8780fd5b508181813d8311610704575b6106eb81836112ca565b8101031261021d576106ff61063a916112eb565b610630565b503d6106e1565b929050346102385760203660031901126102385781356001600160401b0381116102335761073c9036908401611220565b8491945b81811061074b578280f35b6001600160a01b038061076561017761017285878c611352565b169061077561017284868b611352565b90823b156103cf5760248692838951958694859363b732f2f160e01b8552168c8401525af180156103c557906107b092916101ce575061132d565b610740565b929050346102385760203660031901126102385781356001600160401b038111610233576107e69036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b88165afa80156102295785906108b8575b61084891506112f8565b835b878110610855578480f35b83610867610177610172848c87611352565b16610876610172838b86611352565b90803b156101e7578751632bd492a160e11b8152918616828a0152869082908690829084905af180156101dd57906108b392916101ce575061132d565b61084a565b506020813d82116108ea575b816108d1602093836112ca565b8101031261021d576108e5610848916112eb565b61083e565b3d91506108c4565b929050346102385761090336611255565b8251630ddd3b3160e21b815233858201526001600160a01b039592919060209081816024817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b8c165afa80156102295785906109fb575b61096491506112f8565b835b828110610971578480f35b8761098361017761017284878961138c565b1661099261017283868861138c565b8361099e84878961138c565b0135823b156106d15788516340e8d70360e01b81526001600160a01b03909216828b0190815260208101919091529091879183919082908490829060400103925af180156101dd57906109f692916101ce575061132d565b610966565b508181813d8311610a2a575b610a1181836112ca565b8101031261021d57610a25610964916112eb565b61095a565b503d610a07565b929050346102385760203660031901126102385781356001600160401b03811161023357610a629036908401611220565b8251630ddd3b3160e21b815233858201529094916001600160a01b03916024919060208184817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b88165afa8015610229578590610b34575b610ac491506112f8565b835b878110610ad1578480f35b83610ae3610177610172848c87611352565b16610af2610172838b86611352565b90803b156101e7578751632d367ead60e21b8152918616828a0152869082908690829084905af180156101dd5790610b2f92916101ce575061132d565b610ac6565b506020813d8211610b66575b81610b4d602093836112ca565b8101031261021d57610b61610ac4916112eb565b610aba565b3d9150610b40565b50503461040e578160031936011261040e57517f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b6001600160a01b03168152602090f35b50903461031757602090816003193601126103135782356001600160401b03811161021d57610be49036908501611220565b8251630ddd3b3160e21b8152338682015290946001600160a01b037f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b81169360249391929187818681895afa8015610e3e578a90610e04575b610c4791506112f8565b885b89898210610c545780f35b89908587610c828c610c748785610c7a61017785610c74858f8e90611710565b01611378565b16978a611710565b8b51948593849263dc4f1e4960e01b845216898301525afa908115610d7c578b91610de2575b506101c08101516009811015610dd0576005610cc491146116db565b87610cd0838c86611710565b01359060c08101518201809211610dbe57610100015110610d8657888a89610d188a610d1f86610d0a610d0482898c611710565b806113ce565b949095610c74838a8d611710565b9689611710565b0135938a3b15610313578b5163ba4fe16560e01b815260608982015294859384938b91610d50916064870191611400565b92168b84015260448301520381838b5af18015610d7c5790610d7792916101ce575061132d565b610c49565b88513d8d823e3d90fd5b865162461bcd60e51b8152808401899052601381870152720d0c0c0e925b98dbdc9c9958dd105b5bdd5b9d606a1b6044820152606490fd5b634e487b7160e01b8c5260118552868cfd5b634e487b7160e01b8c5260218552868cfd5b610dfe91503d808d833e610df681836112ca565b8101906114b5565b38610ca8565b508781813d8311610e37575b610e1a81836112ca565b81010312610e3357610e2e610c47916112eb565b610c3d565b8980fd5b503d610e10565b87513d8c823e3d90fd5b5034610317576020918260031936011261031357838235936001600160401b039485811161031757366023820112156103175780850135958611610317576024918282019183369160a08a02010111610313578451630ddd3b3160e21b815233878201526001600160a01b039390828183817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b89165afa80156101dd578690610fc0575b610ef691506112f8565b845b888110610f03578580f35b84610f15610177610172848d8961139c565b16878a86866080610f60876060610f578288610f3561017283838c61139c565b97610f4183838c61139c565b01359a610f4f83838c61139c565b01359861139c565b0135958c61139c565b013593853b15610fbc578d958c958c958f95889460a497519a8b998a98638e575a8560e01b8a5216908801528c8701526044860152606485015260848401525af180156105845790610fb792916101ce575061132d565b610ef8565b8b80fd5b508281813d8311610fef575b610fd681836112ca565b810103126103cf57610fea610ef6916112eb565b610eec565b503d610fcc565b90508391346103175760209384600319360112610313576001600160401b039282358481116103cf57366023820112156103cf57808401359485116103cf5760249081810190823691606089020101116101e757630ddd3b3160e21b835233858401526001600160a01b0392888184817f0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b88165afa80156112165788906111e0575b6110a291506112f8565b865b8681106110af578780f35b836110c1610177610172848b87611421565b168885856110d3610172868d89611421565b8951948593849263dc4f1e4960e01b8452168c8301525afa9081156111aa5789916111c6575b506101c081015160098110156111b4579061111760028a93146116db565b85611129610177610172868689611421565b169060a061114a8d610c7487611143610172828a8d611421565b978a611421565b91015190823b15610fbc57885163010d690960e31b8152938816848b0152871686840152604483015289908290606490829084905af180156111aa5790611196929161119b575061132d565b6110a4565b6111a4906112a1565b8a6101c3565b86513d8b823e3d90fd5b634e487b7160e01b8a5260218852848afd5b6111da91503d808b833e610df681836112ca565b8a6110f9565b508881813d831161120f575b6111f681836112ca565b810103126106d15761120a6110a2916112eb565b611098565b503d6111ec565b85513d8a823e3d90fd5b9181601f84011215611250578235916001600160401b038311611250576020808501948460051b01011161125057565b600080fd5b906020600319830112611250576004356001600160401b039283821161125057806023830112156112505781600401359384116112505760248460061b83010111611250576024019190565b6001600160401b0381116112b457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176112b457604052565b5190811515820361125057565b156112ff57565b60405162461bcd60e51b81526020600482015260066024820152653430333a544160d01b6044820152606490fd5b600019811461133c5760010190565b634e487b7160e01b600052601160045260246000fd5b91908110156113625760051b0190565b634e487b7160e01b600052603260045260246000fd5b356001600160a01b03811681036112505790565b91908110156113625760061b0190565b91908110156113625760a0020190565b91908110156113625760051b81013590609e1981360301821215611250570190565b903590601e198136030182121561125057018035906001600160401b0382116112505760200191813603831361125057565b908060209392818452848401376000828201840152601f01601f1916010190565b9190811015611362576060020190565b51906001600160a01b038216820361125057565b919080601f84011215611250578251906001600160401b0382116112b4576040519160209161147d601f8301601f19168401856112ca565b8184528282870101116112505760005b8181106114a257508260009394955001015290565b858101830151848201840152820161148d565b90602080838303126112505782516001600160401b03938482116112505701906102209384838503126112505760408051958601868110838211176112b457815283518652828401518387015280840151818701526060908185015182880152608090818601518289015260a080870151818a015260c09384880151858b015260e09182890151838c0152610100808a0151908c0152610120808a0151908c0152610140808a0151908c0152610160808a0151908c0152610180808a0151908c01526101a0611585818b01611431565b908c01526101c0808a0151906009821015611250578c01526101e06115ab818b016112eb565b908c01526102009889810151908882116112505701968a601f890112156112505787519a818c116112b4578b60051b968a8088519e8f906115ee838d01836112ca565b815201988b010199828b11611250578b8101985b8b8a1061161c575050505050505050505050505082015290565b89518581116112505782019088601f19838703011261125057895191898301838110888211176116c6578f908c528082015184528b82015190840152888101518b840152848101518984015287810151878111611250578f879061168292840101611445565b858401528c81015190878211611250578f876116a2918d94840101611445565b89850152015190600282101561125057828f93928e85940152815201990198611602565b60246000634e487b7160e01b81526041600452fd5b156116e257565b60405162461bcd60e51b81526020600482015260066024820152653530303a575360d01b6044820152606490fd5b91908110156113625760051b81013590605e1981360301821215611250570190565b604051631634c6a360e31b81526001600160a01b03916020908290600490829086165afa9081156117a35760009161176957501690565b906020823d821161179b575b81611782602093836112ca565b81010312611798575061179490611431565b1690565b80fd5b3d9150611775565b6040513d6000823e3d90fdfea164736f6c6343000811000a

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

0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b

-----Decoded View---------------
Arg [0] : _cegaState (address): 0x0730AA138062D8Cc54510aa939b533ba7c30f26B

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000730aa138062d8cc54510aa939b533ba7c30f26b


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  ]

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.