Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 285 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Bulk Update Opti... | 20183653 | 34 hrs ago | IN | 0 ETH | 0.00335289 | ||||
Bulk Update Opti... | 20183652 | 34 hrs ago | IN | 0 ETH | 0.00327022 | ||||
Bulk Update Opti... | 20183651 | 34 hrs ago | IN | 0 ETH | 0.00350425 | ||||
Bulk Update Opti... | 20183650 | 34 hrs ago | IN | 0 ETH | 0.00335572 | ||||
Bulk Set Trade D... | 20183624 | 34 hrs ago | IN | 0 ETH | 0.0064441 | ||||
Bulk Set Trade D... | 20183623 | 34 hrs ago | IN | 0 ETH | 0.01063849 | ||||
Bulk Process Dep... | 20182312 | 39 hrs ago | IN | 0 ETH | 0.00029807 | ||||
Bulk Process Dep... | 20182311 | 39 hrs ago | IN | 0 ETH | 0.00060037 | ||||
Bulk Process Dep... | 20182310 | 39 hrs ago | IN | 0 ETH | 0.00060991 | ||||
Bulk Process Dep... | 20182308 | 39 hrs ago | IN | 0 ETH | 0.00128065 | ||||
Bulk Process Dep... | 20182307 | 39 hrs ago | IN | 0 ETH | 0.00056682 | ||||
Bulk Process Dep... | 20182306 | 39 hrs ago | IN | 0 ETH | 0.00054654 | ||||
Bulk Open Vault ... | 20182287 | 39 hrs ago | IN | 0 ETH | 0.00081629 | ||||
Bulk Open Vault ... | 20182286 | 39 hrs ago | IN | 0 ETH | 0.00125255 | ||||
Bulk Process Wit... | 20179599 | 2 days ago | IN | 0 ETH | 0.00064226 | ||||
Bulk Rollover Va... | 20176550 | 2 days ago | IN | 0 ETH | 0.00436732 | ||||
Bulk Rollover Va... | 20176549 | 2 days ago | IN | 0 ETH | 0.00713453 | ||||
Bulk Process Wit... | 20176523 | 2 days ago | IN | 0 ETH | 0.00260801 | ||||
Bulk Process Wit... | 20176522 | 2 days ago | IN | 0 ETH | 0.00365516 | ||||
Bulk Process Wit... | 20176520 | 2 days ago | IN | 0 ETH | 0.00236614 | ||||
Bulk Process Wit... | 20176519 | 2 days ago | IN | 0 ETH | 0.00712897 | ||||
Bulk Process Wit... | 20176518 | 2 days ago | IN | 0 ETH | 0.00240855 | ||||
Bulk Process Wit... | 20176517 | 2 days ago | IN | 0 ETH | 0.00366878 | ||||
Bulk Collect Fee... | 20176508 | 2 days ago | IN | 0 ETH | 0.00803654 | ||||
Bulk Collect Fee... | 20176506 | 2 days ago | IN | 0 ETH | 0.01274626 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BulkActionsEntry
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; import "../token/ERC20/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); }
// 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; }
// 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; }
// 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); }
// 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; }
// 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; }
{ "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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.