{
  "id": "d06822e3c8a22871d57a66ffd236c110",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.8.11",
  "solcLongVersion": "0.8.11+commit.d7f03943",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/interfaces/external/INotionalProxy.sol": {
        "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.11;\nimport { NotionalProxy } from \"notional-solidity-sdk/interfaces/notional/NotionalProxy.sol\";\n\ninterface INotionalProxy is NotionalProxy {}\n"
      },
      "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../../contracts/lib/Types.sol\";\nimport \"./nTokenERC20.sol\";\nimport \"./nERC1155Interface.sol\";\nimport \"./NotionalGovernance.sol\";\nimport \"./NotionalViews.sol\";\n\ninterface NotionalProxy is nTokenERC20, nERC1155Interface, NotionalGovernance, NotionalViews {\n    /** User trading events */\n    event CashBalanceChange(address indexed account, uint16 indexed currencyId, int256 netCashChange);\n    event nTokenSupplyChange(address indexed account, uint16 indexed currencyId, int256 tokenSupplyChange);\n    event MarketsInitialized(uint16 currencyId);\n    event SweepCashIntoMarkets(uint16 currencyId, int256 cashIntoMarkets);\n    event SettledCashDebt(\n        address indexed settledAccount,\n        uint16 indexed currencyId,\n        address indexed settler,\n        int256 amountToSettleAsset,\n        int256 fCashAmount\n    );\n    event nTokenResidualPurchase(\n        uint16 indexed currencyId,\n        uint40 indexed maturity,\n        address indexed purchaser,\n        int256 fCashAmountToPurchase,\n        int256 netAssetCashNToken\n    );\n    event LendBorrowTrade(\n        address indexed account,\n        uint16 indexed currencyId,\n        uint40 maturity,\n        int256 netAssetCash,\n        int256 netfCash\n    );\n    event AddRemoveLiquidity(\n        address indexed account,\n        uint16 indexed currencyId,\n        uint40 maturity,\n        int256 netAssetCash,\n        int256 netfCash,\n        int256 netLiquidityTokens\n    );\n\n    /// @notice Emitted when reserve fees are accrued\n    event ReserveFeeAccrued(uint16 indexed currencyId, int256 fee);\n    /// @notice Emitted whenever an account context has updated\n    event AccountContextUpdate(address indexed account);\n    /// @notice Emitted when an account has assets that are settled\n    event AccountSettled(address indexed account);\n    /// @notice Emitted when an asset rate is settled\n    event SetSettlementRate(uint256 indexed currencyId, uint256 indexed maturity, uint128 rate);\n\n    /* Liquidation Events */\n    event LiquidateLocalCurrency(\n        address indexed liquidated,\n        address indexed liquidator,\n        uint16 localCurrencyId,\n        int256 netLocalFromLiquidator\n    );\n\n    event LiquidateCollateralCurrency(\n        address indexed liquidated,\n        address indexed liquidator,\n        uint16 localCurrencyId,\n        uint16 collateralCurrencyId,\n        int256 netLocalFromLiquidator,\n        int256 netCollateralTransfer,\n        int256 netNTokenTransfer\n    );\n\n    event LiquidatefCashEvent(\n        address indexed liquidated,\n        address indexed liquidator,\n        uint16 localCurrencyId,\n        uint16 fCashCurrency,\n        int256 netLocalFromLiquidator,\n        uint256[] fCashMaturities,\n        int256[] fCashNotionalTransfer\n    );\n\n    /** UUPS Upgradeable contract calls */\n    function upgradeTo(address newImplementation) external;\n    function upgradeToAndCall(address newImplementation, bytes memory data) external payable;\n    function getImplementation() external view returns (address);\n    function owner() external view returns (address);\n    function pauseRouter() external view returns (address);\n    function pauseGuardian() external view returns (address);\n\n    /** Initialize Markets Action */\n    function initializeMarkets(uint16 currencyId, bool isFirstInit) external;\n\n    function sweepCashIntoMarkets(uint16 currencyId) external;\n\n    /** Redeem nToken Action */\n    function nTokenRedeem(\n        address redeemer,\n        uint16 currencyId,\n        uint96 tokensToRedeem_,\n        bool sellTokenAssets\n    ) external returns (int256);\n\n    /** Account Action */\n    function enableBitmapCurrency(uint16 currencyId) external;\n\n    function settleAccount(address account) external;\n\n    function depositUnderlyingToken(\n        address account,\n        uint16 currencyId,\n        uint256 amountExternalPrecision\n    ) external payable returns (uint256);\n\n    function depositAssetToken(\n        address account,\n        uint16 currencyId,\n        uint256 amountExternalPrecision\n    ) external returns (uint256);\n\n    function withdraw(\n        uint16 currencyId,\n        uint88 amountInternalPrecision,\n        bool redeemToUnderlying\n    ) external returns (uint256);\n\n    /** Batch Action */\n    function batchBalanceAction(address account, BalanceAction[] calldata actions) external payable;\n\n    function batchBalanceAndTradeAction(address account, BalanceActionWithTrades[] calldata actions)\n        external\n        payable;\n\n    function batchLend(address account, BatchLend[] calldata actions) external;\n\n    function batchBalanceAndTradeActionWithCallback(\n        address account,\n        BalanceActionWithTrades[] calldata actions,\n        bytes calldata callbackData\n    ) external payable;\n\n    /** Liquidation Action */\n    function calculateLocalCurrencyLiquidation(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint96 maxNTokenLiquidation\n    ) external returns (int256, int256);\n\n    function liquidateLocalCurrency(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint96 maxNTokenLiquidation\n    ) external returns (int256, int256);\n\n    function calculateCollateralCurrencyLiquidation(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint16 collateralCurrency,\n        uint128 maxCollateralLiquidation,\n        uint96 maxNTokenLiquidation\n    )\n        external\n        returns (\n            int256,\n            int256,\n            int256\n        );\n\n    function liquidateCollateralCurrency(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint16 collateralCurrency,\n        uint128 maxCollateralLiquidation,\n        uint96 maxNTokenLiquidation,\n        bool withdrawCollateral,\n        bool redeemToUnderlying\n    )\n        external\n        returns (\n            int256,\n            int256,\n            int256\n        );\n\n    function calculatefCashLocalLiquidation(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint256[] calldata fCashMaturities,\n        uint256[] calldata maxfCashLiquidateAmounts\n    ) external returns (int256[] memory, int256);\n\n    function liquidatefCashLocal(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint256[] calldata fCashMaturities,\n        uint256[] calldata maxfCashLiquidateAmounts\n    ) external returns (int256[] memory, int256);\n\n    function calculatefCashCrossCurrencyLiquidation(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint16 fCashCurrency,\n        uint256[] calldata fCashMaturities,\n        uint256[] calldata maxfCashLiquidateAmounts\n    ) external returns (int256[] memory, int256);\n\n    function liquidatefCashCrossCurrency(\n        address liquidateAccount,\n        uint16 localCurrency,\n        uint16 fCashCurrency,\n        uint256[] calldata fCashMaturities,\n        uint256[] calldata maxfCashLiquidateAmounts\n    ) external returns (int256[] memory, int256);\n}\n"
      },
      "notional-solidity-sdk/contracts/lib/Types.sol": {
        "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"../../interfaces/chainlink/AggregatorV2V3Interface.sol\";\nimport \"../../interfaces/notional/AssetRateAdapter.sol\";\n\n/// @notice Different types of internal tokens\n///  - UnderlyingToken: underlying asset for a cToken (except for Ether)\n///  - cToken: Compound interest bearing token\n///  - cETH: Special handling for cETH tokens\n///  - Ether: the one and only\n///  - NonMintable: tokens that do not have an underlying (therefore not cTokens)\nenum TokenType {\n    UnderlyingToken,\n    cToken,\n    cETH,\n    Ether,\n    NonMintable\n}\n\n/// @notice Specifies the different trade action types in the system. Each trade action type is\n/// encoded in a tightly packed bytes32 object. Trade action type is the first big endian byte of the\n/// 32 byte trade action object. The schemas for each trade action type are defined below.\nenum TradeActionType {\n    // (uint8 TradeActionType, uint8 MarketIndex, uint88 fCashAmount, uint32 minImpliedRate, uint120 unused)\n    Lend,\n    // (uint8 TradeActionType, uint8 MarketIndex, uint88 fCashAmount, uint32 maxImpliedRate, uint120 unused)\n    Borrow,\n    // (uint8 TradeActionType, uint8 MarketIndex, uint88 assetCashAmount, uint32 minImpliedRate, uint32 maxImpliedRate, uint88 unused)\n    AddLiquidity,\n    // (uint8 TradeActionType, uint8 MarketIndex, uint88 tokenAmount, uint32 minImpliedRate, uint32 maxImpliedRate, uint88 unused)\n    RemoveLiquidity,\n    // (uint8 TradeActionType, uint32 Maturity, int88 fCashResidualAmount, uint128 unused)\n    PurchaseNTokenResidual,\n    // (uint8 TradeActionType, address CounterpartyAddress, int88 fCashAmountToSettle)\n    SettleCashDebt\n}\n\n/// @notice Specifies different deposit actions that can occur during BalanceAction or BalanceActionWithTrades\nenum DepositActionType {\n    // No deposit action\n    None,\n    // Deposit asset cash, depositActionAmount is specified in asset cash external precision\n    DepositAsset,\n    // Deposit underlying tokens that are mintable to asset cash, depositActionAmount is specified in underlying token\n    // external precision\n    DepositUnderlying,\n    // Deposits specified asset cash external precision amount into an nToken and mints the corresponding amount of\n    // nTokens into the account\n    DepositAssetAndMintNToken,\n    // Deposits specified underlying in external precision, mints asset cash, and uses that asset cash to mint nTokens\n    DepositUnderlyingAndMintNToken,\n    // Redeems an nToken balance to asset cash. depositActionAmount is specified in nToken precision. Considered a deposit action\n    // because it deposits asset cash into an account. If there are fCash residuals that cannot be sold off, will revert.\n    RedeemNToken,\n    // Converts specified amount of asset cash balance already in Notional to nTokens. depositActionAmount is specified in\n    // Notional internal 8 decimal precision.\n    ConvertCashToNToken\n}\n\n/// @notice Used internally for PortfolioHandler state\nenum AssetStorageState {\n    NoChange,\n    Update,\n    Delete\n}\n\n/// @notice Defines a balance action for batchAction\nstruct BalanceAction {\n    // Deposit action to take (if any)\n    DepositActionType actionType;\n    uint16 currencyId;\n    // Deposit action amount must correspond to the depositActionType, see documentation above.\n    uint256 depositActionAmount;\n    // Withdraw an amount of asset cash specified in Notional internal 8 decimal precision\n    uint256 withdrawAmountInternalPrecision;\n    // If set to true, will withdraw entire cash balance. Useful if there may be an unknown amount of asset cash\n    // residual left from trading.\n    bool withdrawEntireCashBalance;\n    // If set to true, will redeem asset cash to the underlying token on withdraw.\n    bool redeemToUnderlying;\n}\n\n/// @notice Defines a batch lending action\nstruct BatchLend {\n    uint16 currencyId;\n    // True if the contract should try to transfer underlying tokens instead of asset tokens\n    bool depositUnderlying;\n    // Array of tightly packed 32 byte objects that represent trades. See TradeActionType documentation\n    bytes32[] trades;\n}\n\n/// @notice Defines a balance action with a set of trades to do as well\nstruct BalanceActionWithTrades {\n    DepositActionType actionType;\n    uint16 currencyId;\n    uint256 depositActionAmount;\n    uint256 withdrawAmountInternalPrecision;\n    bool withdrawEntireCashBalance;\n    bool redeemToUnderlying;\n    // Array of tightly packed 32 byte objects that represent trades. See TradeActionType documentation\n    bytes32[] trades;\n}\n\n/// @notice Internal object that represents a token\nstruct Token {\n    address tokenAddress;\n    bool hasTransferFee;\n    int256 decimals;\n    TokenType tokenType;\n    uint256 maxCollateralBalance;\n}\n\nstruct PortfolioAsset {\n    // Asset currency id\n    uint256 currencyId;\n    uint256 maturity;\n    // Asset type, fCash or liquidity token.\n    uint256 assetType;\n    // fCash amount or liquidity token amount\n    int256 notional;\n    // Used for managing portfolio asset state\n    uint256 storageSlot;\n    // The state of the asset for when it is written to storage\n    AssetStorageState storageState;\n}\n\n/// @dev Market object as represented in memory\nstruct MarketParameters {\n    bytes32 storageSlot;\n    uint256 maturity;\n    // Total amount of fCash available for purchase in the market.\n    int256 totalfCash;\n    // Total amount of cash available for purchase in the market.\n    int256 totalAssetCash;\n    // Total amount of liquidity tokens (representing a claim on liquidity) in the market.\n    int256 totalLiquidity;\n    // This is the implied rate that we use to smooth the anchor rate between trades.\n    uint256 lastImpliedRate;\n    // This is the oracle rate used to value fCash and prevent flash loan attacks\n    uint256 oracleRate;\n    // This is the timestamp of the previous trade\n    uint256 previousTradeTime;\n}\n\n/// @dev Governance parameters for a cash group, total storage is 9 bytes + 7 bytes for liquidity token haircuts\n/// and 7 bytes for rate scalars, total of 23 bytes. Note that this is stored packed in the storage slot so there\n/// are no indexes stored for liquidityTokenHaircuts or rateScalars, maxMarketIndex is used instead to determine the\n/// length.\nstruct CashGroupSettings {\n    // Index of the AMMs on chain that will be made available. Idiosyncratic fCash\n    // that is dated less than the longest AMM will be tradable.\n    uint8 maxMarketIndex;\n    // Time window in minutes that the rate oracle will be averaged over\n    uint8 rateOracleTimeWindowMin;\n    // Total fees per trade, specified in BPS\n    uint8 totalFeeBPS;\n    // Share of the fees given to the protocol, denominated in percentage\n    uint8 reserveFeeShare;\n    // Debt buffer specified in 5 BPS increments\n    uint8 debtBuffer5BPS;\n    // fCash haircut specified in 5 BPS increments\n    uint8 fCashHaircut5BPS;\n    // If an account has a negative cash balance, it can be settled by incurring debt at the 3 month market. This\n    // is the basis points for the penalty rate that will be added the current 3 month oracle rate.\n    uint8 settlementPenaltyRate5BPS;\n    // If an account has fCash that is being liquidated, this is the discount that the liquidator can purchase it for\n    uint8 liquidationfCashHaircut5BPS;\n    // If an account has fCash that is being liquidated, this is the discount that the liquidator can purchase it for\n    uint8 liquidationDebtBuffer5BPS;\n    // Liquidity token haircut applied to cash claims, specified as a percentage between 0 and 100\n    uint8[] liquidityTokenHaircuts;\n    // Rate scalar used to determine the slippage of the market\n    uint8[] rateScalars;\n}\n\n/// @dev Holds account level context information used to determine settlement and\n/// free collateral actions. Total storage is 28 bytes\nstruct AccountContext {\n    // Used to check when settlement must be triggered on an account\n    uint40 nextSettleTime;\n    // For lenders that never incur debt, we use this flag to skip the free collateral check.\n    bytes1 hasDebt;\n    // Length of the account's asset array\n    uint8 assetArrayLength;\n    // If this account has bitmaps set, this is the corresponding currency id\n    uint16 bitmapCurrencyId;\n    // 9 total active currencies possible (2 bytes each)\n    bytes18 activeCurrencies;\n}\n\n/// @dev Used in view methods to return account balances in a developer friendly manner\nstruct AccountBalance {\n    uint256 currencyId;\n    int256 cashBalance;\n    int256 nTokenBalance;\n    uint256 lastClaimTime;\n    uint256 lastClaimIntegralSupply;\n}\n\n/// @dev Token object in storage:\n///  20 bytes for token address\n///  1 byte for hasTransferFee\n///  1 byte for tokenType\n///  1 byte for tokenDecimals\n///  9 bytes for maxCollateralBalance (may not always be set)\nstruct TokenStorage {\n    // Address of the token\n    address tokenAddress;\n    // Transfer fees will change token deposit behavior\n    bool hasTransferFee;\n    TokenType tokenType;\n    uint8 decimalPlaces;\n    // Upper limit on how much of this token the contract can hold at any time\n    uint72 maxCollateralBalance;\n}\n\n/// @dev Exchange rate object as it is represented in storage, total storage is 25 bytes.\nstruct ETHRateStorage {\n    // Address of the rate oracle\n    AggregatorV2V3Interface rateOracle;\n    // The decimal places of precision that the rate oracle uses\n    uint8 rateDecimalPlaces;\n    // True of the exchange rate must be inverted\n    bool mustInvert;\n    // NOTE: both of these governance values are set with BUFFER_DECIMALS precision\n    // Amount of buffer to apply to the exchange rate for negative balances.\n    uint8 buffer;\n    // Amount of haircut to apply to the exchange rate for positive balances\n    uint8 haircut;\n    // Liquidation discount in percentage point terms, 106 means a 6% discount\n    uint8 liquidationDiscount;\n}\n\n/// @dev Asset rate oracle object as it is represented in storage, total storage is 21 bytes.\nstruct AssetRateStorage {\n    // Address of the rate oracle\n    AssetRateAdapter rateOracle;\n    // The decimal places of the underlying asset\n    uint8 underlyingDecimalPlaces;\n}\n\n/// @notice In memory ETH exchange rate used during free collateral calculation.\nstruct ETHRate {\n    // The decimals (i.e. 10^rateDecimalPlaces) of the exchange rate, defined by the rate oracle\n    int256 rateDecimals;\n    // The exchange rate from base to ETH (if rate invert is required it is already done)\n    int256 rate;\n    // Amount of buffer as a multiple with a basis of 100 applied to negative balances.\n    int256 buffer;\n    // Amount of haircut as a multiple with a basis of 100 applied to positive balances\n    int256 haircut;\n    // Liquidation discount as a multiple with a basis of 100 applied to the exchange rate\n    // as an incentive given to liquidators.\n    int256 liquidationDiscount;\n}\n\n/// @dev Asset rate used to convert between underlying cash and asset cash\nstruct AssetRateParameters {\n    // Address of the asset rate oracle\n    AssetRateAdapter rateOracle;\n    // The exchange rate from base to quote (if invert is required it is already done)\n    int256 rate;\n    // The decimals of the underlying, the rate converts to the underlying decimals\n    int256 underlyingDecimals;\n}\n"
      },
      "notional-solidity-sdk/interfaces/notional/nTokenERC20.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\npragma abicoder v2;\n\ninterface nTokenERC20 {\n    event Transfer(address indexed from, address indexed to, uint256 amount);\n\n    event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n    function nTokenTotalSupply(address nTokenAddress) external view returns (uint256);\n\n    function nTokenTransferAllowance(\n        uint16 currencyId,\n        address owner,\n        address spender\n    ) external view returns (uint256);\n\n    function nTokenBalanceOf(uint16 currencyId, address account) external view returns (uint256);\n\n    function nTokenTransferApprove(\n        uint16 currencyId,\n        address owner,\n        address spender,\n        uint256 amount\n    ) external returns (bool);\n\n    function nTokenTransfer(\n        uint16 currencyId,\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n\n    function nTokenTransferFrom(\n        uint16 currencyId,\n        address spender,\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n\n    function nTokenTransferApproveAll(address spender, uint256 amount) external returns (bool);\n\n    function nTokenClaimIncentives() external returns (uint256);\n\n    function nTokenPresentValueAssetDenominated(uint16 currencyId) external view returns (int256);\n\n    function nTokenPresentValueUnderlyingDenominated(uint16 currencyId)\n        external\n        view\n        returns (int256);\n}\n"
      },
      "notional-solidity-sdk/interfaces/notional/nERC1155Interface.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../../contracts/lib/Types.sol\";\n\ninterface nERC1155Interface {\n    event TransferSingle(\n        address indexed operator,\n        address indexed from,\n        address indexed to,\n        uint256 id,\n        uint256 value\n    );\n    event TransferBatch(\n        address indexed operator,\n        address indexed from,\n        address indexed to,\n        uint256[] ids,\n        uint256[] values\n    );\n    event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n    event URI(string value, uint256 indexed id);\n\n    function supportsInterface(bytes4 interfaceId) external pure returns (bool);\n\n    function balanceOf(address account, uint256 id) external view returns (uint256);\n\n    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)\n        external\n        view\n        returns (uint256[] memory);\n\n    function signedBalanceOf(address account, uint256 id) external view returns (int256);\n\n    function signedBalanceOfBatch(address[] calldata accounts, uint256[] calldata ids)\n        external\n        view\n        returns (int256[] memory);\n\n    function setApprovalForAll(address operator, bool approved) external;\n\n    function isApprovedForAll(address account, address operator) external view returns (bool);\n\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 id,\n        uint256 amount,\n        bytes calldata data\n    ) external payable;\n\n    function safeBatchTransferFrom(\n        address from,\n        address to,\n        uint256[] calldata ids,\n        uint256[] calldata amounts,\n        bytes calldata data\n    ) external payable;\n\n    function decodeToAssets(uint256[] calldata ids, uint256[] calldata amounts)\n        external\n        view\n        returns (PortfolioAsset[] memory);\n\n    function encodeToId(\n        uint16 currencyId,\n        uint40 maturity,\n        uint8 assetType\n    ) external pure returns (uint256 id);\n}\n"
      },
      "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../../contracts/lib/Types.sol\";\nimport \"../chainlink/AggregatorV2V3Interface.sol\";\n\ninterface NotionalGovernance {\n    event ListCurrency(uint16 newCurrencyId);\n    event UpdateETHRate(uint16 currencyId);\n    event UpdateAssetRate(uint16 currencyId);\n    event UpdateCashGroup(uint16 currencyId);\n    event DeployNToken(uint16 currencyId, address nTokenAddress);\n    event UpdateDepositParameters(uint16 currencyId);\n    event UpdateInitializationParameters(uint16 currencyId);\n    event UpdateIncentiveEmissionRate(uint16 currencyId, uint32 newEmissionRate);\n    event UpdateTokenCollateralParameters(uint16 currencyId);\n    event UpdateGlobalTransferOperator(address operator, bool approved);\n    event UpdateAuthorizedCallbackContract(address operator, bool approved);\n    event UpdateMaxCollateralBalance(uint16 currencyId, uint72 maxCollateralBalance);\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n    event PauseRouterAndGuardianUpdated(address indexed pauseRouter, address indexed pauseGuardian);\n\n    function transferOwnership(address newOwner) external;\n\n    function setPauseRouterAndGuardian(address pauseRouter_, address pauseGuardian_) external;\n\n    function listCurrency(\n        TokenStorage calldata assetToken,\n        TokenStorage calldata underlyingToken,\n        AggregatorV2V3Interface rateOracle,\n        bool mustInvert,\n        uint8 buffer,\n        uint8 haircut,\n        uint8 liquidationDiscount\n    ) external returns (uint16 currencyId);\n\n    function updateMaxCollateralBalance(\n        uint16 currencyId,\n        uint72 maxCollateralBalanceInternalPrecision\n    ) external;\n\n    function enableCashGroup(\n        uint16 currencyId,\n        AssetRateAdapter assetRateOracle,\n        CashGroupSettings calldata cashGroup,\n        string calldata underlyingName,\n        string calldata underlyingSymbol\n    ) external;\n\n    function updateDepositParameters(\n        uint16 currencyId,\n        uint32[] calldata depositShares,\n        uint32[] calldata leverageThresholds\n    ) external;\n\n    function updateInitializationParameters(\n        uint16 currencyId,\n        uint32[] calldata annualizedAnchorRates,\n        uint32[] calldata proportions\n    ) external;\n\n    function updateIncentiveEmissionRate(uint16 currencyId, uint32 newEmissionRate) external;\n\n    function updateTokenCollateralParameters(\n        uint16 currencyId,\n        uint8 residualPurchaseIncentive10BPS,\n        uint8 pvHaircutPercentage,\n        uint8 residualPurchaseTimeBufferHours,\n        uint8 cashWithholdingBuffer10BPS,\n        uint8 liquidationHaircutPercentage\n    ) external;\n\n    function updateCashGroup(uint16 currencyId, CashGroupSettings calldata cashGroup) external;\n\n    function updateAssetRate(uint16 currencyId, AssetRateAdapter rateOracle) external;\n\n    function updateETHRate(\n        uint16 currencyId,\n        AggregatorV2V3Interface rateOracle,\n        bool mustInvert,\n        uint8 buffer,\n        uint8 haircut,\n        uint8 liquidationDiscount\n    ) external;\n\n    function updateGlobalTransferOperator(address operator, bool approved) external;\n\n    function updateAuthorizedCallbackContract(address operator, bool approved) external;\n}\n"
      },
      "notional-solidity-sdk/interfaces/notional/NotionalViews.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\npragma abicoder v2;\n\nimport \"../../contracts/lib/Types.sol\";\n\ninterface NotionalViews {\n    function getMaxCurrencyId() external view returns (uint16);\n\n    function getCurrencyId(address tokenAddress) external view returns (uint16 currencyId);\n\n    function getCurrency(uint16 currencyId)\n        external\n        view\n        returns (Token memory assetToken, Token memory underlyingToken);\n\n    function getRateStorage(uint16 currencyId)\n        external\n        view\n        returns (ETHRateStorage memory ethRate, AssetRateStorage memory assetRate);\n\n    function getCurrencyAndRates(uint16 currencyId)\n        external\n        view\n        returns (\n            Token memory assetToken,\n            Token memory underlyingToken,\n            ETHRate memory ethRate,\n            AssetRateParameters memory assetRate\n        );\n\n    function getCashGroup(uint16 currencyId) external view returns (CashGroupSettings memory);\n\n    function getCashGroupAndAssetRate(uint16 currencyId)\n        external\n        view\n        returns (CashGroupSettings memory cashGroup, AssetRateParameters memory assetRate);\n\n    function getInitializationParameters(uint16 currencyId)\n        external\n        view\n        returns (int256[] memory annualizedAnchorRates, int256[] memory proportions);\n\n    function getDepositParameters(uint16 currencyId)\n        external\n        view\n        returns (int256[] memory depositShares, int256[] memory leverageThresholds);\n\n    function nTokenAddress(uint16 currencyId) external view returns (address);\n\n    function getNoteToken() external view returns (address);\n\n    function getSettlementRate(uint16 currencyId, uint40 maturity)\n        external\n        view\n        returns (AssetRateParameters memory);\n\n    function getMarket(uint16 currencyId, uint256 maturity, uint256 settlementDate)\n        external view returns (MarketParameters memory);\n\n    function getActiveMarkets(uint16 currencyId) external view returns (MarketParameters[] memory);\n\n    function getActiveMarketsAtBlockTime(uint16 currencyId, uint32 blockTime)\n        external\n        view\n        returns (MarketParameters[] memory);\n\n    function getReserveBalance(uint16 currencyId) external view returns (int256 reserveBalance);\n\n    function getNTokenPortfolio(address tokenAddress)\n        external\n        view\n        returns (PortfolioAsset[] memory liquidityTokens, PortfolioAsset[] memory netfCashAssets);\n\n    function getNTokenAccount(address tokenAddress)\n        external\n        view\n        returns (\n            uint16 currencyId,\n            uint256 totalSupply,\n            uint256 incentiveAnnualEmissionRate,\n            uint256 lastInitializedTime,\n            bytes5 nTokenParameters,\n            int256 cashBalance,\n            uint256 integralTotalSupply,\n            uint256 lastSupplyChangeTime\n        );\n\n    function getAccount(address account)\n        external\n        view\n        returns (\n            AccountContext memory accountContext,\n            AccountBalance[] memory accountBalances,\n            PortfolioAsset[] memory portfolio\n        );\n\n    function getAccountContext(address account) external view returns (AccountContext memory);\n\n    function getAccountBalance(uint16 currencyId, address account)\n        external\n        view\n        returns (\n            int256 cashBalance,\n            int256 nTokenBalance,\n            uint256 lastClaimTime\n        );\n\n    function getAccountPortfolio(address account) external view returns (PortfolioAsset[] memory);\n\n    function getfCashNotional(\n        address account,\n        uint16 currencyId,\n        uint256 maturity\n    ) external view returns (int256);\n\n    function getAssetsBitmap(address account, uint16 currencyId) external view returns (bytes32);\n\n    function getFreeCollateral(address account) external view returns (int256, int256[] memory);\n\n    function calculateNTokensToMint(uint16 currencyId, uint88 amountToDepositExternalPrecision)\n        external\n        view\n        returns (uint256);\n\n    function getfCashAmountGivenCashAmount(\n        uint16 currencyId,\n        int88 netCashToAccount,\n        uint256 marketIndex,\n        uint256 blockTime\n    ) external view returns (int256);\n\n    function getCashAmountGivenfCashAmount(\n        uint16 currencyId,\n        int88 fCashAmount,\n        uint256 marketIndex,\n        uint256 blockTime\n    ) external view returns (int256, int256);\n\n    function nTokenGetClaimableIncentives(address account, uint256 blockTime)\n        external\n        view\n        returns (uint256);\n\n}\n"
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol": {
        "content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.6.0;\n\nimport \"./AggregatorInterface.sol\";\nimport \"./AggregatorV3Interface.sol\";\n\ninterface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface\n{\n}"
      },
      "notional-solidity-sdk/interfaces/notional/AssetRateAdapter.sol": {
        "content": "// SPDX-License-Identifier: GPL-v3\npragma solidity >=0.7.0;\n\n/// @notice Used as a wrapper for tokens that are interest bearing for an\n/// underlying token. Follows the cToken interface, however, can be adapted\n/// for other interest bearing tokens.\ninterface AssetRateAdapter {\n    function token() external view returns (address);\n\n    function decimals() external view returns (uint8);\n\n    function description() external view returns (string memory);\n\n    function version() external view returns (uint256);\n\n    function underlying() external view returns (address);\n\n    function getExchangeRateStateful() external returns (int256);\n\n    function getExchangeRateView() external view returns (int256);\n\n    function getAnnualizedSupplyRate() external view returns (uint256);\n}\n"
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorInterface.sol": {
        "content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.6.0;\n\ninterface AggregatorInterface {\n  function latestAnswer() external view returns (int256);\n  function latestTimestamp() external view returns (uint256);\n  function latestRound() external view returns (uint256);\n  function getAnswer(uint256 roundId) external view returns (int256);\n  function getTimestamp(uint256 roundId) external view returns (uint256);\n\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);\n  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);\n}"
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV3Interface.sol": {
        "content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.6.0;\n\ninterface AggregatorV3Interface {\n\n  function decimals() external view returns (uint8);\n  function description() external view returns (string memory);\n  function version() external view returns (uint256);\n\n  // getRoundData and latestRoundData should both raise \"No data present\"\n  // if they do not have data to report, instead of returning unset values\n  // which could be misinterpreted as actual reported values.\n  function getRoundData(uint80 _roundId)\n    external\n    view\n    returns (\n      uint80 roundId,\n      int256 answer,\n      uint256 startedAt,\n      uint256 updatedAt,\n      uint80 answeredInRound\n    );\n\n  function latestRoundData()\n    external\n    view\n    returns (\n      uint80 roundId,\n      int256 answer,\n      uint256 startedAt,\n      uint256 updatedAt,\n      uint80 answeredInRound\n    );\n\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/interfaces/external/INotionalProxy.sol": {
        "INotionalProxy": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "AccountContextUpdate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "AccountSettled",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netfCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLiquidityTokens",
                  "type": "int256"
                }
              ],
              "name": "AddRemoveLiquidity",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Approval",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "ApprovalForAll",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netCashChange",
                  "type": "int256"
                }
              ],
              "name": "CashBalanceChange",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "DeployNToken",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netfCash",
                  "type": "int256"
                }
              ],
              "name": "LendBorrowTrade",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "collateralCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netCollateralTransfer",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netNTokenTransfer",
                  "type": "int256"
                }
              ],
              "name": "LiquidateCollateralCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                }
              ],
              "name": "LiquidateLocalCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "indexed": false,
                  "internalType": "int256[]",
                  "name": "fCashNotionalTransfer",
                  "type": "int256[]"
                }
              ],
              "name": "LiquidatefCashEvent",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "newCurrencyId",
                  "type": "uint16"
                }
              ],
              "name": "ListCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "MarketsInitialized",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "previousOwner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "OwnershipTransferred",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseRouter",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseGuardian",
                  "type": "address"
                }
              ],
              "name": "PauseRouterAndGuardianUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fee",
                  "type": "int256"
                }
              ],
              "name": "ReserveFeeAccrued",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "currencyId",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint128",
                  "name": "rate",
                  "type": "uint128"
                }
              ],
              "name": "SetSettlementRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "settledAccount",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "settler",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "amountToSettleAsset",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fCashAmount",
                  "type": "int256"
                }
              ],
              "name": "SettledCashDebt",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "cashIntoMarkets",
                  "type": "int256"
                }
              ],
              "name": "SweepCashIntoMarkets",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Transfer",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "values",
                  "type": "uint256[]"
                }
              ],
              "name": "TransferBatch",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "name": "TransferSingle",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "string",
                  "name": "value",
                  "type": "string"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "URI",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateAssetRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateAuthorizedCallbackContract",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateCashGroup",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateDepositParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateETHRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateGlobalTransferOperator",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "UpdateIncentiveEmissionRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateInitializationParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint72",
                  "name": "maxCollateralBalance",
                  "type": "uint72"
                }
              ],
              "name": "UpdateMaxCollateralBalance",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateTokenCollateralParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": true,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "purchaser",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fCashAmountToPurchase",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCashNToken",
                  "type": "int256"
                }
              ],
              "name": "nTokenResidualPurchase",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "tokenSupplyChange",
                  "type": "int256"
                }
              ],
              "name": "nTokenSupplyChange",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "balanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "balanceOfBatch",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    }
                  ],
                  "internalType": "struct BalanceAction[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchBalanceAction",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BalanceActionWithTrades[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchBalanceAndTradeAction",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BalanceActionWithTrades[]",
                  "name": "actions",
                  "type": "tuple[]"
                },
                {
                  "internalType": "bytes",
                  "name": "callbackData",
                  "type": "bytes"
                }
              ],
              "name": "batchBalanceAndTradeActionWithCallback",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bool",
                      "name": "depositUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BatchLend[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchLend",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "collateralCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint128",
                  "name": "maxCollateralLiquidation",
                  "type": "uint128"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "calculateCollateralCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "calculateLocalCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint88",
                  "name": "amountToDepositExternalPrecision",
                  "type": "uint88"
                }
              ],
              "name": "calculateNTokensToMint",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "calculatefCashCrossCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "calculatefCashLocalLiquidation",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "name": "decodeToAssets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "amountExternalPrecision",
                  "type": "uint256"
                }
              ],
              "name": "depositAssetToken",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "amountExternalPrecision",
                  "type": "uint256"
                }
              ],
              "name": "depositUnderlyingToken",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "enableBitmapCurrency",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "assetRateOracle",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "internalType": "string",
                  "name": "underlyingName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "underlyingSymbol",
                  "type": "string"
                }
              ],
              "name": "enableCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "internalType": "uint8",
                  "name": "assetType",
                  "type": "uint8"
                }
              ],
              "name": "encodeToId",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccount",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "accountContext",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "cashBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "nTokenBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimTime",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimIntegralSupply",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct AccountBalance[]",
                  "name": "accountBalances",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "portfolio",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "nTokenBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastClaimTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountContext",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getActiveMarkets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "blockTime",
                  "type": "uint32"
                }
              ],
              "name": "getActiveMarketsAtBlockTime",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getAssetsBitmap",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "fCashAmount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getCashAmountGivenfCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroup",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroupAndAssetRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrency",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrencyAndRates",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "int256",
                      "name": "rateDecimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "buffer",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "haircut",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "liquidationDiscount",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct ETHRate",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getDepositParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "depositShares",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "leverageThresholds",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getFreeCollateral",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getImplementation",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getInitializationParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "annualizedAnchorRates",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "proportions",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "settlementDate",
                  "type": "uint256"
                }
              ],
              "name": "getMarket",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getMaxCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenAccount",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "totalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "incentiveAnnualEmissionRate",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastInitializedTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes5",
                  "name": "nTokenParameters",
                  "type": "bytes5"
                },
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "integralTotalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastSupplyChangeTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "liquidityTokens",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "netfCashAssets",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getNoteToken",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getRateStorage",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AggregatorV2V3Interface",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateDecimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "bool",
                      "name": "mustInvert",
                      "type": "bool"
                    },
                    {
                      "internalType": "uint8",
                      "name": "buffer",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "haircut",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDiscount",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct ETHRateStorage",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "underlyingDecimalPlaces",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct AssetRateStorage",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getReserveBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "reserveBalance",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                }
              ],
              "name": "getSettlementRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "netCashToAccount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getfCashAmountGivenCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                }
              ],
              "name": "getfCashNotional",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "bool",
                  "name": "isFirstInit",
                  "type": "bool"
                }
              ],
              "name": "initializeMarkets",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                }
              ],
              "name": "isApprovedForAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "collateralCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint128",
                  "name": "maxCollateralLiquidation",
                  "type": "uint128"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                },
                {
                  "internalType": "bool",
                  "name": "withdrawCollateral",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "redeemToUnderlying",
                  "type": "bool"
                }
              ],
              "name": "liquidateCollateralCurrency",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "liquidateLocalCurrency",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "liquidatefCashCrossCurrency",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "liquidatefCashLocal",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "listCurrency",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenAddress",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "nTokenBalanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "nTokenClaimIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "nTokenGetClaimableIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueAssetDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueUnderlyingDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "redeemer",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "tokensToRedeem_",
                  "type": "uint96"
                },
                {
                  "internalType": "bool",
                  "name": "sellTokenAssets",
                  "type": "bool"
                }
              ],
              "name": "nTokenRedeem",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "nTokenTotalSupply",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransfer",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                }
              ],
              "name": "nTokenTransferAllowance",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApprove",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApproveAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferFrom",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "owner",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pauseGuardian",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pauseRouter",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeBatchTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "setApprovalForAll",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "pauseRouter_",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "pauseGuardian_",
                  "type": "address"
                }
              ],
              "name": "setPauseRouterAndGuardian",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "settleAccount",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "signedBalanceOf",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "signedBalanceOfBatch",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes4",
                  "name": "interfaceId",
                  "type": "bytes4"
                }
              ],
              "name": "supportsInterface",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "sweepCashIntoMarkets",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "transferOwnership",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "rateOracle",
                  "type": "address"
                }
              ],
              "name": "updateAssetRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateAuthorizedCallbackContract",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                }
              ],
              "name": "updateCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "depositShares",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "leverageThresholds",
                  "type": "uint32[]"
                }
              ],
              "name": "updateDepositParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "updateETHRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateGlobalTransferOperator",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "updateIncentiveEmissionRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "annualizedAnchorRates",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "proportions",
                  "type": "uint32[]"
                }
              ],
              "name": "updateInitializationParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint72",
                  "name": "maxCollateralBalanceInternalPrecision",
                  "type": "uint72"
                }
              ],
              "name": "updateMaxCollateralBalance",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseIncentive10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "pvHaircutPercentage",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseTimeBufferHours",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "cashWithholdingBuffer10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationHaircutPercentage",
                  "type": "uint8"
                }
              ],
              "name": "updateTokenCollateralParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newImplementation",
                  "type": "address"
                }
              ],
              "name": "upgradeTo",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newImplementation",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "upgradeToAndCall",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint88",
                  "name": "amountInternalPrecision",
                  "type": "uint88"
                },
                {
                  "internalType": "bool",
                  "name": "redeemToUnderlying",
                  "type": "bool"
                }
              ],
              "name": "withdraw",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "balanceOf(address,uint256)": "00fdd58e",
              "balanceOfBatch(address[],uint256[])": "4e1273f4",
              "batchBalanceAction(address,(uint8,uint16,uint256,uint256,bool,bool)[])": "6e6a32a6",
              "batchBalanceAndTradeAction(address,(uint8,uint16,uint256,uint256,bool,bool,bytes32[])[])": "0276b64b",
              "batchBalanceAndTradeActionWithCallback(address,(uint8,uint16,uint256,uint256,bool,bool,bytes32[])[],bytes)": "5950d8e9",
              "batchLend(address,(uint16,bool,bytes32[])[])": "541f5270",
              "calculateCollateralCurrencyLiquidation(address,uint16,uint16,uint128,uint96)": "9a600eeb",
              "calculateLocalCurrencyLiquidation(address,uint16,uint96)": "e3e7cb4f",
              "calculateNTokensToMint(uint16,uint88)": "6a09a2a3",
              "calculatefCashCrossCurrencyLiquidation(address,uint16,uint16,uint256[],uint256[])": "fa37e395",
              "calculatefCashLocalLiquidation(address,uint16,uint256[],uint256[])": "0fb281d9",
              "decodeToAssets(uint256[],uint256[])": "3fa6b808",
              "depositAssetToken(address,uint16,uint256)": "b8a69455",
              "depositUnderlyingToken(address,uint16,uint256)": "2890fb65",
              "enableBitmapCurrency(uint16)": "9c979450",
              "enableCashGroup(uint16,address,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]),string,string)": "e31051a1",
              "encodeToId(uint16,uint40,uint8)": "735a1dc8",
              "getAccount(address)": "fbcbc0f1",
              "getAccountBalance(uint16,address)": "fc1b1345",
              "getAccountContext(address)": "b0de2217",
              "getAccountPortfolio(address)": "b536ffb6",
              "getActiveMarkets(uint16)": "497cf7e3",
              "getActiveMarketsAtBlockTime(uint16,uint32)": "ec3c0501",
              "getAssetsBitmap(address,uint16)": "8ecd0660",
              "getCashAmountGivenfCashAmount(uint16,int88,uint256,uint256)": "094614df",
              "getCashGroup(uint16)": "d4ccb0ed",
              "getCashGroupAndAssetRate(uint16)": "6987a203",
              "getCurrency(uint16)": "4ebad18e",
              "getCurrencyAndRates(uint16)": "88a73eb7",
              "getCurrencyId(address)": "94f1d1e4",
              "getDepositParameters(uint16)": "97f503f5",
              "getFreeCollateral(address)": "c3999444",
              "getImplementation()": "aaf10f42",
              "getInitializationParameters(uint16)": "65663b59",
              "getMarket(uint16,uint256,uint256)": "709d6c7b",
              "getMaxCurrencyId()": "04ccb84e",
              "getNTokenAccount(address)": "2d353221",
              "getNTokenPortfolio(address)": "aa94baa7",
              "getNoteToken()": "ec41a257",
              "getRateStorage(uint16)": "e74b6e4e",
              "getReserveBalance(uint16)": "ca0ee700",
              "getSettlementRate(uint16,uint40)": "b62d268a",
              "getfCashAmountGivenCashAmount(uint16,int88,uint256,uint256)": "8355e895",
              "getfCashNotional(address,uint16,uint256)": "911a56b0",
              "initializeMarkets(uint16,bool)": "d0e064c0",
              "isApprovedForAll(address,address)": "e985e9c5",
              "liquidateCollateralCurrency(address,uint16,uint16,uint128,uint96,bool,bool)": "6633af39",
              "liquidateLocalCurrency(address,uint16,uint96)": "2d10e6eb",
              "liquidatefCashCrossCurrency(address,uint16,uint16,uint256[],uint256[])": "e816469d",
              "liquidatefCashLocal(address,uint16,uint256[],uint256[])": "7fdebbf4",
              "listCurrency((address,bool,uint8,uint8,uint72),(address,bool,uint8,uint8,uint72),address,bool,uint8,uint8,uint8)": "f575e4e2",
              "nTokenAddress(uint16)": "974b1054",
              "nTokenBalanceOf(uint16,address)": "a78dbfff",
              "nTokenClaimIncentives()": "daca07a6",
              "nTokenGetClaimableIncentives(address,uint256)": "97d6db2e",
              "nTokenPresentValueAssetDenominated(uint16)": "1a05bce1",
              "nTokenPresentValueUnderlyingDenominated(uint16)": "3b2987b3",
              "nTokenRedeem(address,uint16,uint96,bool)": "43ad06d8",
              "nTokenTotalSupply(address)": "6a96e86f",
              "nTokenTransfer(uint16,address,address,uint256)": "18ae40d7",
              "nTokenTransferAllowance(uint16,address,address)": "7db31ab9",
              "nTokenTransferApprove(uint16,address,address,uint256)": "309c00a6",
              "nTokenTransferApproveAll(address,uint256)": "2e0ecba8",
              "nTokenTransferFrom(uint16,address,address,address,uint256)": "884a7092",
              "owner()": "8da5cb5b",
              "pauseGuardian()": "24a3d622",
              "pauseRouter()": "82463367",
              "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6",
              "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a",
              "setApprovalForAll(address,bool)": "a22cb465",
              "setPauseRouterAndGuardian(address,address)": "744ec0ef",
              "settleAccount(address)": "f667f897",
              "signedBalanceOf(address,uint256)": "0fac8f09",
              "signedBalanceOfBatch(address[],uint256[])": "81a86855",
              "supportsInterface(bytes4)": "01ffc9a7",
              "sweepCashIntoMarkets(uint16)": "bb6dd58e",
              "transferOwnership(address)": "f2fde38b",
              "updateAssetRate(uint16,address)": "a508eca0",
              "updateAuthorizedCallbackContract(address,bool)": "fa17b5f1",
              "updateCashGroup(uint16,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]))": "a11a4293",
              "updateDepositParameters(uint16,uint32[],uint32[])": "cfaaf474",
              "updateETHRate(uint16,address,bool,uint8,uint8,uint8)": "c572cae4",
              "updateGlobalTransferOperator(address,bool)": "353abc5d",
              "updateIncentiveEmissionRate(uint16,uint32)": "a9d7bc52",
              "updateInitializationParameters(uint16,uint32[],uint32[])": "413f2c5f",
              "updateMaxCollateralBalance(uint16,uint72)": "98dcbc23",
              "updateTokenCollateralParameters(uint16,uint8,uint8,uint8,uint8,uint8)": "3436a19c",
              "upgradeTo(address)": "3659cfe6",
              "upgradeToAndCall(address,bytes)": "4f1ef286",
              "withdraw(uint16,uint88,bool)": "02f332e8"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorInterface.sol": {
        "AggregatorInterface": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "int256",
                  "name": "current",
                  "type": "int256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                }
              ],
              "name": "AnswerUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "startedBy",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                }
              ],
              "name": "NewRound",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                }
              ],
              "name": "getAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                }
              ],
              "name": "getTimestamp",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestRound",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestTimestamp",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "getAnswer(uint256)": "b5ab58dc",
              "getTimestamp(uint256)": "b633620c",
              "latestAnswer()": "50d25bcd",
              "latestRound()": "668a0f02",
              "latestTimestamp()": "8205bf6a"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol": {
        "AggregatorV2V3Interface": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "int256",
                  "name": "current",
                  "type": "int256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                }
              ],
              "name": "AnswerUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "startedBy",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                }
              ],
              "name": "NewRound",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "decimals",
              "outputs": [
                {
                  "internalType": "uint8",
                  "name": "",
                  "type": "uint8"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "description",
              "outputs": [
                {
                  "internalType": "string",
                  "name": "",
                  "type": "string"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                }
              ],
              "name": "getAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint80",
                  "name": "_roundId",
                  "type": "uint80"
                }
              ],
              "name": "getRoundData",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "roundId",
                  "type": "uint80"
                },
                {
                  "internalType": "int256",
                  "name": "answer",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint80",
                  "name": "answeredInRound",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                }
              ],
              "name": "getTimestamp",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestRound",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestRoundData",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "roundId",
                  "type": "uint80"
                },
                {
                  "internalType": "int256",
                  "name": "answer",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint80",
                  "name": "answeredInRound",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestTimestamp",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "version",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "decimals()": "313ce567",
              "description()": "7284e416",
              "getAnswer(uint256)": "b5ab58dc",
              "getRoundData(uint80)": "9a6fc8f5",
              "getTimestamp(uint256)": "b633620c",
              "latestAnswer()": "50d25bcd",
              "latestRound()": "668a0f02",
              "latestRoundData()": "feaf968c",
              "latestTimestamp()": "8205bf6a",
              "version()": "54fd4d50"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV3Interface.sol": {
        "AggregatorV3Interface": {
          "abi": [
            {
              "inputs": [],
              "name": "decimals",
              "outputs": [
                {
                  "internalType": "uint8",
                  "name": "",
                  "type": "uint8"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "description",
              "outputs": [
                {
                  "internalType": "string",
                  "name": "",
                  "type": "string"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint80",
                  "name": "_roundId",
                  "type": "uint80"
                }
              ],
              "name": "getRoundData",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "roundId",
                  "type": "uint80"
                },
                {
                  "internalType": "int256",
                  "name": "answer",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint80",
                  "name": "answeredInRound",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestRoundData",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "roundId",
                  "type": "uint80"
                },
                {
                  "internalType": "int256",
                  "name": "answer",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "startedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAt",
                  "type": "uint256"
                },
                {
                  "internalType": "uint80",
                  "name": "answeredInRound",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "version",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "decimals()": "313ce567",
              "description()": "7284e416",
              "getRoundData(uint80)": "9a6fc8f5",
              "latestRoundData()": "feaf968c",
              "version()": "54fd4d50"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/AssetRateAdapter.sol": {
        "AssetRateAdapter": {
          "abi": [
            {
              "inputs": [],
              "name": "decimals",
              "outputs": [
                {
                  "internalType": "uint8",
                  "name": "",
                  "type": "uint8"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "description",
              "outputs": [
                {
                  "internalType": "string",
                  "name": "",
                  "type": "string"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getAnnualizedSupplyRate",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getExchangeRateStateful",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getExchangeRateView",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "token",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "underlying",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "version",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "decimals()": "313ce567",
              "description()": "7284e416",
              "getAnnualizedSupplyRate()": "dd30a666",
              "getExchangeRateStateful()": "1ee10833",
              "getExchangeRateView()": "b2fffb04",
              "token()": "fc0c546a",
              "underlying()": "6f307dc3",
              "version()": "54fd4d50"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol": {
        "NotionalGovernance": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "DeployNToken",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "newCurrencyId",
                  "type": "uint16"
                }
              ],
              "name": "ListCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "previousOwner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "OwnershipTransferred",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseRouter",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseGuardian",
                  "type": "address"
                }
              ],
              "name": "PauseRouterAndGuardianUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateAssetRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateAuthorizedCallbackContract",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateCashGroup",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateDepositParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateETHRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateGlobalTransferOperator",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "UpdateIncentiveEmissionRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateInitializationParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint72",
                  "name": "maxCollateralBalance",
                  "type": "uint72"
                }
              ],
              "name": "UpdateMaxCollateralBalance",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateTokenCollateralParameters",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "assetRateOracle",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "internalType": "string",
                  "name": "underlyingName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "underlyingSymbol",
                  "type": "string"
                }
              ],
              "name": "enableCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "listCurrency",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "pauseRouter_",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "pauseGuardian_",
                  "type": "address"
                }
              ],
              "name": "setPauseRouterAndGuardian",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "transferOwnership",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "rateOracle",
                  "type": "address"
                }
              ],
              "name": "updateAssetRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateAuthorizedCallbackContract",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                }
              ],
              "name": "updateCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "depositShares",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "leverageThresholds",
                  "type": "uint32[]"
                }
              ],
              "name": "updateDepositParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "updateETHRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateGlobalTransferOperator",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "updateIncentiveEmissionRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "annualizedAnchorRates",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "proportions",
                  "type": "uint32[]"
                }
              ],
              "name": "updateInitializationParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint72",
                  "name": "maxCollateralBalanceInternalPrecision",
                  "type": "uint72"
                }
              ],
              "name": "updateMaxCollateralBalance",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseIncentive10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "pvHaircutPercentage",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseTimeBufferHours",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "cashWithholdingBuffer10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationHaircutPercentage",
                  "type": "uint8"
                }
              ],
              "name": "updateTokenCollateralParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "enableCashGroup(uint16,address,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]),string,string)": "e31051a1",
              "listCurrency((address,bool,uint8,uint8,uint72),(address,bool,uint8,uint8,uint72),address,bool,uint8,uint8,uint8)": "f575e4e2",
              "setPauseRouterAndGuardian(address,address)": "744ec0ef",
              "transferOwnership(address)": "f2fde38b",
              "updateAssetRate(uint16,address)": "a508eca0",
              "updateAuthorizedCallbackContract(address,bool)": "fa17b5f1",
              "updateCashGroup(uint16,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]))": "a11a4293",
              "updateDepositParameters(uint16,uint32[],uint32[])": "cfaaf474",
              "updateETHRate(uint16,address,bool,uint8,uint8,uint8)": "c572cae4",
              "updateGlobalTransferOperator(address,bool)": "353abc5d",
              "updateIncentiveEmissionRate(uint16,uint32)": "a9d7bc52",
              "updateInitializationParameters(uint16,uint32[],uint32[])": "413f2c5f",
              "updateMaxCollateralBalance(uint16,uint72)": "98dcbc23",
              "updateTokenCollateralParameters(uint16,uint8,uint8,uint8,uint8,uint8)": "3436a19c"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol": {
        "NotionalProxy": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "AccountContextUpdate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "AccountSettled",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netfCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLiquidityTokens",
                  "type": "int256"
                }
              ],
              "name": "AddRemoveLiquidity",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Approval",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "ApprovalForAll",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netCashChange",
                  "type": "int256"
                }
              ],
              "name": "CashBalanceChange",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "DeployNToken",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCash",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netfCash",
                  "type": "int256"
                }
              ],
              "name": "LendBorrowTrade",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "collateralCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netCollateralTransfer",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netNTokenTransfer",
                  "type": "int256"
                }
              ],
              "name": "LiquidateCollateralCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                }
              ],
              "name": "LiquidateLocalCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidated",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "liquidator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "localCurrencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netLocalFromLiquidator",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "indexed": false,
                  "internalType": "int256[]",
                  "name": "fCashNotionalTransfer",
                  "type": "int256[]"
                }
              ],
              "name": "LiquidatefCashEvent",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "newCurrencyId",
                  "type": "uint16"
                }
              ],
              "name": "ListCurrency",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "MarketsInitialized",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "previousOwner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "OwnershipTransferred",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseRouter",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "pauseGuardian",
                  "type": "address"
                }
              ],
              "name": "PauseRouterAndGuardianUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fee",
                  "type": "int256"
                }
              ],
              "name": "ReserveFeeAccrued",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "currencyId",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint128",
                  "name": "rate",
                  "type": "uint128"
                }
              ],
              "name": "SetSettlementRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "settledAccount",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "settler",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "amountToSettleAsset",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fCashAmount",
                  "type": "int256"
                }
              ],
              "name": "SettledCashDebt",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "cashIntoMarkets",
                  "type": "int256"
                }
              ],
              "name": "SweepCashIntoMarkets",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Transfer",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "values",
                  "type": "uint256[]"
                }
              ],
              "name": "TransferBatch",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "name": "TransferSingle",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "string",
                  "name": "value",
                  "type": "string"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "URI",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateAssetRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateAuthorizedCallbackContract",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateCashGroup",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateDepositParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateETHRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "UpdateGlobalTransferOperator",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "UpdateIncentiveEmissionRate",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateInitializationParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "uint72",
                  "name": "maxCollateralBalance",
                  "type": "uint72"
                }
              ],
              "name": "UpdateMaxCollateralBalance",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "UpdateTokenCollateralParameters",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": true,
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "purchaser",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "fCashAmountToPurchase",
                  "type": "int256"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "netAssetCashNToken",
                  "type": "int256"
                }
              ],
              "name": "nTokenResidualPurchase",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "indexed": false,
                  "internalType": "int256",
                  "name": "tokenSupplyChange",
                  "type": "int256"
                }
              ],
              "name": "nTokenSupplyChange",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "balanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "balanceOfBatch",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    }
                  ],
                  "internalType": "struct BalanceAction[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchBalanceAction",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BalanceActionWithTrades[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchBalanceAndTradeAction",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum DepositActionType",
                      "name": "actionType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "uint256",
                      "name": "depositActionAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "withdrawAmountInternalPrecision",
                      "type": "uint256"
                    },
                    {
                      "internalType": "bool",
                      "name": "withdrawEntireCashBalance",
                      "type": "bool"
                    },
                    {
                      "internalType": "bool",
                      "name": "redeemToUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BalanceActionWithTrades[]",
                  "name": "actions",
                  "type": "tuple[]"
                },
                {
                  "internalType": "bytes",
                  "name": "callbackData",
                  "type": "bytes"
                }
              ],
              "name": "batchBalanceAndTradeActionWithCallback",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint16",
                      "name": "currencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bool",
                      "name": "depositUnderlying",
                      "type": "bool"
                    },
                    {
                      "internalType": "bytes32[]",
                      "name": "trades",
                      "type": "bytes32[]"
                    }
                  ],
                  "internalType": "struct BatchLend[]",
                  "name": "actions",
                  "type": "tuple[]"
                }
              ],
              "name": "batchLend",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "collateralCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint128",
                  "name": "maxCollateralLiquidation",
                  "type": "uint128"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "calculateCollateralCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "calculateLocalCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint88",
                  "name": "amountToDepositExternalPrecision",
                  "type": "uint88"
                }
              ],
              "name": "calculateNTokensToMint",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "calculatefCashCrossCurrencyLiquidation",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "calculatefCashLocalLiquidation",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "name": "decodeToAssets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "amountExternalPrecision",
                  "type": "uint256"
                }
              ],
              "name": "depositAssetToken",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "amountExternalPrecision",
                  "type": "uint256"
                }
              ],
              "name": "depositUnderlyingToken",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "enableBitmapCurrency",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "assetRateOracle",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "internalType": "string",
                  "name": "underlyingName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "underlyingSymbol",
                  "type": "string"
                }
              ],
              "name": "enableCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "internalType": "uint8",
                  "name": "assetType",
                  "type": "uint8"
                }
              ],
              "name": "encodeToId",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccount",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "accountContext",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "cashBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "nTokenBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimTime",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimIntegralSupply",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct AccountBalance[]",
                  "name": "accountBalances",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "portfolio",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "nTokenBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastClaimTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountContext",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getActiveMarkets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "blockTime",
                  "type": "uint32"
                }
              ],
              "name": "getActiveMarketsAtBlockTime",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getAssetsBitmap",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "fCashAmount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getCashAmountGivenfCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroup",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroupAndAssetRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrency",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrencyAndRates",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "int256",
                      "name": "rateDecimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "buffer",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "haircut",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "liquidationDiscount",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct ETHRate",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getDepositParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "depositShares",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "leverageThresholds",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getFreeCollateral",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getImplementation",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getInitializationParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "annualizedAnchorRates",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "proportions",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "settlementDate",
                  "type": "uint256"
                }
              ],
              "name": "getMarket",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getMaxCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenAccount",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "totalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "incentiveAnnualEmissionRate",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastInitializedTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes5",
                  "name": "nTokenParameters",
                  "type": "bytes5"
                },
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "integralTotalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastSupplyChangeTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "liquidityTokens",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "netfCashAssets",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getNoteToken",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getRateStorage",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AggregatorV2V3Interface",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateDecimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "bool",
                      "name": "mustInvert",
                      "type": "bool"
                    },
                    {
                      "internalType": "uint8",
                      "name": "buffer",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "haircut",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDiscount",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct ETHRateStorage",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "underlyingDecimalPlaces",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct AssetRateStorage",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getReserveBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "reserveBalance",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                }
              ],
              "name": "getSettlementRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "netCashToAccount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getfCashAmountGivenCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                }
              ],
              "name": "getfCashNotional",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "bool",
                  "name": "isFirstInit",
                  "type": "bool"
                }
              ],
              "name": "initializeMarkets",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                }
              ],
              "name": "isApprovedForAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "collateralCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint128",
                  "name": "maxCollateralLiquidation",
                  "type": "uint128"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                },
                {
                  "internalType": "bool",
                  "name": "withdrawCollateral",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "redeemToUnderlying",
                  "type": "bool"
                }
              ],
              "name": "liquidateCollateralCurrency",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "maxNTokenLiquidation",
                  "type": "uint96"
                }
              ],
              "name": "liquidateLocalCurrency",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "fCashCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "liquidatefCashCrossCurrency",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "liquidateAccount",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "localCurrency",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256[]",
                  "name": "fCashMaturities",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "maxfCashLiquidateAmounts",
                  "type": "uint256[]"
                }
              ],
              "name": "liquidatefCashLocal",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "decimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint72",
                      "name": "maxCollateralBalance",
                      "type": "uint72"
                    }
                  ],
                  "internalType": "struct TokenStorage",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "listCurrency",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenAddress",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "nTokenBalanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "nTokenClaimIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "nTokenGetClaimableIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueAssetDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueUnderlyingDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "redeemer",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint96",
                  "name": "tokensToRedeem_",
                  "type": "uint96"
                },
                {
                  "internalType": "bool",
                  "name": "sellTokenAssets",
                  "type": "bool"
                }
              ],
              "name": "nTokenRedeem",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "nTokenTotalSupply",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransfer",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                }
              ],
              "name": "nTokenTransferAllowance",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApprove",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApproveAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferFrom",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "owner",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pauseGuardian",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pauseRouter",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeBatchTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "setApprovalForAll",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "pauseRouter_",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "pauseGuardian_",
                  "type": "address"
                }
              ],
              "name": "setPauseRouterAndGuardian",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "settleAccount",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "signedBalanceOf",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "signedBalanceOfBatch",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes4",
                  "name": "interfaceId",
                  "type": "bytes4"
                }
              ],
              "name": "supportsInterface",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "sweepCashIntoMarkets",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newOwner",
                  "type": "address"
                }
              ],
              "name": "transferOwnership",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AssetRateAdapter",
                  "name": "rateOracle",
                  "type": "address"
                }
              ],
              "name": "updateAssetRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateAuthorizedCallbackContract",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                }
              ],
              "name": "updateCashGroup",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "depositShares",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "leverageThresholds",
                  "type": "uint32[]"
                }
              ],
              "name": "updateDepositParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "contract AggregatorV2V3Interface",
                  "name": "rateOracle",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "mustInvert",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "buffer",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "haircut",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationDiscount",
                  "type": "uint8"
                }
              ],
              "name": "updateETHRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "updateGlobalTransferOperator",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "newEmissionRate",
                  "type": "uint32"
                }
              ],
              "name": "updateIncentiveEmissionRate",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32[]",
                  "name": "annualizedAnchorRates",
                  "type": "uint32[]"
                },
                {
                  "internalType": "uint32[]",
                  "name": "proportions",
                  "type": "uint32[]"
                }
              ],
              "name": "updateInitializationParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint72",
                  "name": "maxCollateralBalanceInternalPrecision",
                  "type": "uint72"
                }
              ],
              "name": "updateMaxCollateralBalance",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseIncentive10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "pvHaircutPercentage",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "residualPurchaseTimeBufferHours",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "cashWithholdingBuffer10BPS",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "liquidationHaircutPercentage",
                  "type": "uint8"
                }
              ],
              "name": "updateTokenCollateralParameters",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newImplementation",
                  "type": "address"
                }
              ],
              "name": "upgradeTo",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "newImplementation",
                  "type": "address"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "upgradeToAndCall",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint88",
                  "name": "amountInternalPrecision",
                  "type": "uint88"
                },
                {
                  "internalType": "bool",
                  "name": "redeemToUnderlying",
                  "type": "bool"
                }
              ],
              "name": "withdraw",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "balanceOf(address,uint256)": "00fdd58e",
              "balanceOfBatch(address[],uint256[])": "4e1273f4",
              "batchBalanceAction(address,(uint8,uint16,uint256,uint256,bool,bool)[])": "6e6a32a6",
              "batchBalanceAndTradeAction(address,(uint8,uint16,uint256,uint256,bool,bool,bytes32[])[])": "0276b64b",
              "batchBalanceAndTradeActionWithCallback(address,(uint8,uint16,uint256,uint256,bool,bool,bytes32[])[],bytes)": "5950d8e9",
              "batchLend(address,(uint16,bool,bytes32[])[])": "541f5270",
              "calculateCollateralCurrencyLiquidation(address,uint16,uint16,uint128,uint96)": "9a600eeb",
              "calculateLocalCurrencyLiquidation(address,uint16,uint96)": "e3e7cb4f",
              "calculateNTokensToMint(uint16,uint88)": "6a09a2a3",
              "calculatefCashCrossCurrencyLiquidation(address,uint16,uint16,uint256[],uint256[])": "fa37e395",
              "calculatefCashLocalLiquidation(address,uint16,uint256[],uint256[])": "0fb281d9",
              "decodeToAssets(uint256[],uint256[])": "3fa6b808",
              "depositAssetToken(address,uint16,uint256)": "b8a69455",
              "depositUnderlyingToken(address,uint16,uint256)": "2890fb65",
              "enableBitmapCurrency(uint16)": "9c979450",
              "enableCashGroup(uint16,address,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]),string,string)": "e31051a1",
              "encodeToId(uint16,uint40,uint8)": "735a1dc8",
              "getAccount(address)": "fbcbc0f1",
              "getAccountBalance(uint16,address)": "fc1b1345",
              "getAccountContext(address)": "b0de2217",
              "getAccountPortfolio(address)": "b536ffb6",
              "getActiveMarkets(uint16)": "497cf7e3",
              "getActiveMarketsAtBlockTime(uint16,uint32)": "ec3c0501",
              "getAssetsBitmap(address,uint16)": "8ecd0660",
              "getCashAmountGivenfCashAmount(uint16,int88,uint256,uint256)": "094614df",
              "getCashGroup(uint16)": "d4ccb0ed",
              "getCashGroupAndAssetRate(uint16)": "6987a203",
              "getCurrency(uint16)": "4ebad18e",
              "getCurrencyAndRates(uint16)": "88a73eb7",
              "getCurrencyId(address)": "94f1d1e4",
              "getDepositParameters(uint16)": "97f503f5",
              "getFreeCollateral(address)": "c3999444",
              "getImplementation()": "aaf10f42",
              "getInitializationParameters(uint16)": "65663b59",
              "getMarket(uint16,uint256,uint256)": "709d6c7b",
              "getMaxCurrencyId()": "04ccb84e",
              "getNTokenAccount(address)": "2d353221",
              "getNTokenPortfolio(address)": "aa94baa7",
              "getNoteToken()": "ec41a257",
              "getRateStorage(uint16)": "e74b6e4e",
              "getReserveBalance(uint16)": "ca0ee700",
              "getSettlementRate(uint16,uint40)": "b62d268a",
              "getfCashAmountGivenCashAmount(uint16,int88,uint256,uint256)": "8355e895",
              "getfCashNotional(address,uint16,uint256)": "911a56b0",
              "initializeMarkets(uint16,bool)": "d0e064c0",
              "isApprovedForAll(address,address)": "e985e9c5",
              "liquidateCollateralCurrency(address,uint16,uint16,uint128,uint96,bool,bool)": "6633af39",
              "liquidateLocalCurrency(address,uint16,uint96)": "2d10e6eb",
              "liquidatefCashCrossCurrency(address,uint16,uint16,uint256[],uint256[])": "e816469d",
              "liquidatefCashLocal(address,uint16,uint256[],uint256[])": "7fdebbf4",
              "listCurrency((address,bool,uint8,uint8,uint72),(address,bool,uint8,uint8,uint72),address,bool,uint8,uint8,uint8)": "f575e4e2",
              "nTokenAddress(uint16)": "974b1054",
              "nTokenBalanceOf(uint16,address)": "a78dbfff",
              "nTokenClaimIncentives()": "daca07a6",
              "nTokenGetClaimableIncentives(address,uint256)": "97d6db2e",
              "nTokenPresentValueAssetDenominated(uint16)": "1a05bce1",
              "nTokenPresentValueUnderlyingDenominated(uint16)": "3b2987b3",
              "nTokenRedeem(address,uint16,uint96,bool)": "43ad06d8",
              "nTokenTotalSupply(address)": "6a96e86f",
              "nTokenTransfer(uint16,address,address,uint256)": "18ae40d7",
              "nTokenTransferAllowance(uint16,address,address)": "7db31ab9",
              "nTokenTransferApprove(uint16,address,address,uint256)": "309c00a6",
              "nTokenTransferApproveAll(address,uint256)": "2e0ecba8",
              "nTokenTransferFrom(uint16,address,address,address,uint256)": "884a7092",
              "owner()": "8da5cb5b",
              "pauseGuardian()": "24a3d622",
              "pauseRouter()": "82463367",
              "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6",
              "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a",
              "setApprovalForAll(address,bool)": "a22cb465",
              "setPauseRouterAndGuardian(address,address)": "744ec0ef",
              "settleAccount(address)": "f667f897",
              "signedBalanceOf(address,uint256)": "0fac8f09",
              "signedBalanceOfBatch(address[],uint256[])": "81a86855",
              "supportsInterface(bytes4)": "01ffc9a7",
              "sweepCashIntoMarkets(uint16)": "bb6dd58e",
              "transferOwnership(address)": "f2fde38b",
              "updateAssetRate(uint16,address)": "a508eca0",
              "updateAuthorizedCallbackContract(address,bool)": "fa17b5f1",
              "updateCashGroup(uint16,(uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8[],uint8[]))": "a11a4293",
              "updateDepositParameters(uint16,uint32[],uint32[])": "cfaaf474",
              "updateETHRate(uint16,address,bool,uint8,uint8,uint8)": "c572cae4",
              "updateGlobalTransferOperator(address,bool)": "353abc5d",
              "updateIncentiveEmissionRate(uint16,uint32)": "a9d7bc52",
              "updateInitializationParameters(uint16,uint32[],uint32[])": "413f2c5f",
              "updateMaxCollateralBalance(uint16,uint72)": "98dcbc23",
              "updateTokenCollateralParameters(uint16,uint8,uint8,uint8,uint8,uint8)": "3436a19c",
              "upgradeTo(address)": "3659cfe6",
              "upgradeToAndCall(address,bytes)": "4f1ef286",
              "withdraw(uint16,uint88,bool)": "02f332e8"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/NotionalViews.sol": {
        "NotionalViews": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint88",
                  "name": "amountToDepositExternalPrecision",
                  "type": "uint88"
                }
              ],
              "name": "calculateNTokensToMint",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccount",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "accountContext",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "cashBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "nTokenBalance",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimTime",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastClaimIntegralSupply",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct AccountBalance[]",
                  "name": "accountBalances",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "portfolio",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "nTokenBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastClaimTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountContext",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint40",
                      "name": "nextSettleTime",
                      "type": "uint40"
                    },
                    {
                      "internalType": "bytes1",
                      "name": "hasDebt",
                      "type": "bytes1"
                    },
                    {
                      "internalType": "uint8",
                      "name": "assetArrayLength",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint16",
                      "name": "bitmapCurrencyId",
                      "type": "uint16"
                    },
                    {
                      "internalType": "bytes18",
                      "name": "activeCurrencies",
                      "type": "bytes18"
                    }
                  ],
                  "internalType": "struct AccountContext",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getAccountPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getActiveMarkets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint32",
                  "name": "blockTime",
                  "type": "uint32"
                }
              ],
              "name": "getActiveMarketsAtBlockTime",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getAssetsBitmap",
              "outputs": [
                {
                  "internalType": "bytes32",
                  "name": "",
                  "type": "bytes32"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "fCashAmount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getCashAmountGivenfCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroup",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCashGroupAndAssetRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "maxMarketIndex",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateOracleTimeWindowMin",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "totalFeeBPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "reserveFeeShare",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "debtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "fCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "settlementPenaltyRate5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationfCashHaircut5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDebtBuffer5BPS",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "liquidityTokenHaircuts",
                      "type": "uint8[]"
                    },
                    {
                      "internalType": "uint8[]",
                      "name": "rateScalars",
                      "type": "uint8[]"
                    }
                  ],
                  "internalType": "struct CashGroupSettings",
                  "name": "cashGroup",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrency",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getCurrencyAndRates",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "assetToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "address",
                      "name": "tokenAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "bool",
                      "name": "hasTransferFee",
                      "type": "bool"
                    },
                    {
                      "internalType": "int256",
                      "name": "decimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "enum TokenType",
                      "name": "tokenType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maxCollateralBalance",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct Token",
                  "name": "underlyingToken",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "int256",
                      "name": "rateDecimals",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "buffer",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "haircut",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "liquidationDiscount",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct ETHRate",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getDepositParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "depositShares",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "leverageThresholds",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "getFreeCollateral",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                },
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getInitializationParameters",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "annualizedAnchorRates",
                  "type": "int256[]"
                },
                {
                  "internalType": "int256[]",
                  "name": "proportions",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "settlementDate",
                  "type": "uint256"
                }
              ],
              "name": "getMarket",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "bytes32",
                      "name": "storageSlot",
                      "type": "bytes32"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalfCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalAssetCash",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "totalLiquidity",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "lastImpliedRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "oracleRate",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "previousTradeTime",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct MarketParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getMaxCurrencyId",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "",
                  "type": "uint16"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenAccount",
              "outputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "totalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "incentiveAnnualEmissionRate",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastInitializedTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes5",
                  "name": "nTokenParameters",
                  "type": "bytes5"
                },
                {
                  "internalType": "int256",
                  "name": "cashBalance",
                  "type": "int256"
                },
                {
                  "internalType": "uint256",
                  "name": "integralTotalSupply",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "lastSupplyChangeTime",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenAddress",
                  "type": "address"
                }
              ],
              "name": "getNTokenPortfolio",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "liquidityTokens",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "netfCashAssets",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getNoteToken",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getRateStorage",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AggregatorV2V3Interface",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "rateDecimalPlaces",
                      "type": "uint8"
                    },
                    {
                      "internalType": "bool",
                      "name": "mustInvert",
                      "type": "bool"
                    },
                    {
                      "internalType": "uint8",
                      "name": "buffer",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "haircut",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint8",
                      "name": "liquidationDiscount",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct ETHRateStorage",
                  "name": "ethRate",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "uint8",
                      "name": "underlyingDecimalPlaces",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct AssetRateStorage",
                  "name": "assetRate",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "getReserveBalance",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "reserveBalance",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                }
              ],
              "name": "getSettlementRate",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "contract AssetRateAdapter",
                      "name": "rateOracle",
                      "type": "address"
                    },
                    {
                      "internalType": "int256",
                      "name": "rate",
                      "type": "int256"
                    },
                    {
                      "internalType": "int256",
                      "name": "underlyingDecimals",
                      "type": "int256"
                    }
                  ],
                  "internalType": "struct AssetRateParameters",
                  "name": "",
                  "type": "tuple"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "int88",
                  "name": "netCashToAccount",
                  "type": "int88"
                },
                {
                  "internalType": "uint256",
                  "name": "marketIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "getfCashAmountGivenCashAmount",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint256",
                  "name": "maturity",
                  "type": "uint256"
                }
              ],
              "name": "getfCashNotional",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenAddress",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "blockTime",
                  "type": "uint256"
                }
              ],
              "name": "nTokenGetClaimableIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "calculateNTokensToMint(uint16,uint88)": "6a09a2a3",
              "getAccount(address)": "fbcbc0f1",
              "getAccountBalance(uint16,address)": "fc1b1345",
              "getAccountContext(address)": "b0de2217",
              "getAccountPortfolio(address)": "b536ffb6",
              "getActiveMarkets(uint16)": "497cf7e3",
              "getActiveMarketsAtBlockTime(uint16,uint32)": "ec3c0501",
              "getAssetsBitmap(address,uint16)": "8ecd0660",
              "getCashAmountGivenfCashAmount(uint16,int88,uint256,uint256)": "094614df",
              "getCashGroup(uint16)": "d4ccb0ed",
              "getCashGroupAndAssetRate(uint16)": "6987a203",
              "getCurrency(uint16)": "4ebad18e",
              "getCurrencyAndRates(uint16)": "88a73eb7",
              "getCurrencyId(address)": "94f1d1e4",
              "getDepositParameters(uint16)": "97f503f5",
              "getFreeCollateral(address)": "c3999444",
              "getInitializationParameters(uint16)": "65663b59",
              "getMarket(uint16,uint256,uint256)": "709d6c7b",
              "getMaxCurrencyId()": "04ccb84e",
              "getNTokenAccount(address)": "2d353221",
              "getNTokenPortfolio(address)": "aa94baa7",
              "getNoteToken()": "ec41a257",
              "getRateStorage(uint16)": "e74b6e4e",
              "getReserveBalance(uint16)": "ca0ee700",
              "getSettlementRate(uint16,uint40)": "b62d268a",
              "getfCashAmountGivenCashAmount(uint16,int88,uint256,uint256)": "8355e895",
              "getfCashNotional(address,uint16,uint256)": "911a56b0",
              "nTokenAddress(uint16)": "974b1054",
              "nTokenGetClaimableIncentives(address,uint256)": "97d6db2e"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/nERC1155Interface.sol": {
        "nERC1155Interface": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "ApprovalForAll",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "indexed": false,
                  "internalType": "uint256[]",
                  "name": "values",
                  "type": "uint256[]"
                }
              ],
              "name": "TransferBatch",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                }
              ],
              "name": "TransferSingle",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "string",
                  "name": "value",
                  "type": "string"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "URI",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "balanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "balanceOfBatch",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "name": "decodeToAssets",
              "outputs": [
                {
                  "components": [
                    {
                      "internalType": "uint256",
                      "name": "currencyId",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "maturity",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "assetType",
                      "type": "uint256"
                    },
                    {
                      "internalType": "int256",
                      "name": "notional",
                      "type": "int256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "storageSlot",
                      "type": "uint256"
                    },
                    {
                      "internalType": "enum AssetStorageState",
                      "name": "storageState",
                      "type": "uint8"
                    }
                  ],
                  "internalType": "struct PortfolioAsset[]",
                  "name": "",
                  "type": "tuple[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "uint40",
                  "name": "maturity",
                  "type": "uint40"
                },
                {
                  "internalType": "uint8",
                  "name": "assetType",
                  "type": "uint8"
                }
              ],
              "name": "encodeToId",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                }
              ],
              "name": "isApprovedForAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeBatchTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "name": "safeTransferFrom",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "operator",
                  "type": "address"
                },
                {
                  "internalType": "bool",
                  "name": "approved",
                  "type": "bool"
                }
              ],
              "name": "setApprovalForAll",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                }
              ],
              "name": "signedBalanceOf",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address[]",
                  "name": "accounts",
                  "type": "address[]"
                },
                {
                  "internalType": "uint256[]",
                  "name": "ids",
                  "type": "uint256[]"
                }
              ],
              "name": "signedBalanceOfBatch",
              "outputs": [
                {
                  "internalType": "int256[]",
                  "name": "",
                  "type": "int256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "bytes4",
                  "name": "interfaceId",
                  "type": "bytes4"
                }
              ],
              "name": "supportsInterface",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "balanceOf(address,uint256)": "00fdd58e",
              "balanceOfBatch(address[],uint256[])": "4e1273f4",
              "decodeToAssets(uint256[],uint256[])": "3fa6b808",
              "encodeToId(uint16,uint40,uint8)": "735a1dc8",
              "isApprovedForAll(address,address)": "e985e9c5",
              "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6",
              "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a",
              "setApprovalForAll(address,bool)": "a22cb465",
              "signedBalanceOf(address,uint256)": "0fac8f09",
              "signedBalanceOfBatch(address[],uint256[])": "81a86855",
              "supportsInterface(bytes4)": "01ffc9a7"
            }
          }
        }
      },
      "notional-solidity-sdk/interfaces/notional/nTokenERC20.sol": {
        "nTokenERC20": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Approval",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "Transfer",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                }
              ],
              "name": "nTokenBalanceOf",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "nTokenClaimIncentives",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueAssetDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                }
              ],
              "name": "nTokenPresentValueUnderlyingDenominated",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "nTokenAddress",
                  "type": "address"
                }
              ],
              "name": "nTokenTotalSupply",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransfer",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                }
              ],
              "name": "nTokenTransferAllowance",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "owner",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApprove",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferApproveAll",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint16",
                  "name": "currencyId",
                  "type": "uint16"
                },
                {
                  "internalType": "address",
                  "name": "spender",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "from",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "name": "nTokenTransferFrom",
              "outputs": [
                {
                  "internalType": "bool",
                  "name": "",
                  "type": "bool"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "functionDebugData": {},
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "nTokenBalanceOf(uint16,address)": "a78dbfff",
              "nTokenClaimIncentives()": "daca07a6",
              "nTokenPresentValueAssetDenominated(uint16)": "1a05bce1",
              "nTokenPresentValueUnderlyingDenominated(uint16)": "3b2987b3",
              "nTokenTotalSupply(address)": "6a96e86f",
              "nTokenTransfer(uint16,address,address,uint256)": "18ae40d7",
              "nTokenTransferAllowance(uint16,address,address)": "7db31ab9",
              "nTokenTransferApprove(uint16,address,address,uint256)": "309c00a6",
              "nTokenTransferApproveAll(address,uint256)": "2e0ecba8",
              "nTokenTransferFrom(uint16,address,address,address,uint256)": "884a7092"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/interfaces/external/INotionalProxy.sol": {
        "ast": {
          "absolutePath": "contracts/interfaces/external/INotionalProxy.sol",
          "exportedSymbols": {
            "INotionalProxy": [
              6
            ],
            "NotionalProxy": [
              1036
            ]
          },
          "id": 7,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".11"
              ],
              "nodeType": "PragmaDirective",
              "src": "32:24:0"
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol",
              "file": "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol",
              "id": 3,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 7,
              "sourceUnit": 1037,
              "src": "57:92:0",
              "symbolAliases": [
                {
                  "foreign": {
                    "id": 2,
                    "name": "NotionalProxy",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "src": "66:13:0",
                    "typeDescriptions": {}
                  },
                  "nameLocation": "-1:-1:-1"
                }
              ],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 4,
                    "name": "NotionalProxy",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 1036,
                    "src": "179:13:0"
                  },
                  "id": 5,
                  "nodeType": "InheritanceSpecifier",
                  "src": "179:13:0"
                }
              ],
              "canonicalName": "INotionalProxy",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 6,
              "linearizedBaseContracts": [
                6,
                1036,
                1350,
                584,
                1512,
                1628
              ],
              "name": "INotionalProxy",
              "nameLocation": "161:14:0",
              "nodeType": "ContractDefinition",
              "nodes": [],
              "scope": 7,
              "src": "151:44:0",
              "usedErrors": []
            }
          ],
          "src": "32:164:0"
        },
        "id": 0
      },
      "notional-solidity-sdk/contracts/lib/Types.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/contracts/lib/Types.sol",
          "exportedSymbols": {
            "AccountBalance": [
              164
            ],
            "AccountContext": [
              153
            ],
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ],
            "AssetRateAdapter": [
              362
            ],
            "AssetRateParameters": [
              215
            ],
            "AssetRateStorage": [
              196
            ],
            "AssetStorageState": [
              35
            ],
            "BalanceAction": [
              49
            ],
            "BalanceActionWithTrades": [
              74
            ],
            "BatchLend": [
              57
            ],
            "CashGroupSettings": [
              142
            ],
            "DepositActionType": [
              31
            ],
            "ETHRate": [
              207
            ],
            "ETHRateStorage": [
              190
            ],
            "MarketParameters": [
              117
            ],
            "PortfolioAsset": [
              100
            ],
            "Token": [
              86
            ],
            "TokenStorage": [
              176
            ],
            "TokenType": [
              16
            ],
            "TradeActionType": [
              23
            ]
          },
          "id": 216,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 8,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "32:23:1"
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol",
              "file": "../../interfaces/chainlink/AggregatorV2V3Interface.sol",
              "id": 9,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 216,
              "sourceUnit": 273,
              "src": "57:64:1",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/AssetRateAdapter.sol",
              "file": "../../interfaces/notional/AssetRateAdapter.sol",
              "id": 10,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 216,
              "sourceUnit": 363,
              "src": "122:56:1",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "canonicalName": "TokenType",
              "id": 16,
              "members": [
                {
                  "id": 11,
                  "name": "UnderlyingToken",
                  "nameLocation": "527:15:1",
                  "nodeType": "EnumValue",
                  "src": "527:15:1"
                },
                {
                  "id": 12,
                  "name": "cToken",
                  "nameLocation": "548:6:1",
                  "nodeType": "EnumValue",
                  "src": "548:6:1"
                },
                {
                  "id": 13,
                  "name": "cETH",
                  "nameLocation": "560:4:1",
                  "nodeType": "EnumValue",
                  "src": "560:4:1"
                },
                {
                  "id": 14,
                  "name": "Ether",
                  "nameLocation": "570:5:1",
                  "nodeType": "EnumValue",
                  "src": "570:5:1"
                },
                {
                  "id": 15,
                  "name": "NonMintable",
                  "nameLocation": "581:11:1",
                  "nodeType": "EnumValue",
                  "src": "581:11:1"
                }
              ],
              "name": "TokenType",
              "nameLocation": "511:9:1",
              "nodeType": "EnumDefinition",
              "src": "506:88:1"
            },
            {
              "canonicalName": "TradeActionType",
              "id": 23,
              "members": [
                {
                  "id": 17,
                  "name": "Lend",
                  "nameLocation": "1021:4:1",
                  "nodeType": "EnumValue",
                  "src": "1021:4:1"
                },
                {
                  "id": 18,
                  "name": "Borrow",
                  "nameLocation": "1140:6:1",
                  "nodeType": "EnumValue",
                  "src": "1140:6:1"
                },
                {
                  "id": 19,
                  "name": "AddLiquidity",
                  "nameLocation": "1287:12:1",
                  "nodeType": "EnumValue",
                  "src": "1287:12:1"
                },
                {
                  "id": 20,
                  "name": "RemoveLiquidity",
                  "nameLocation": "1436:15:1",
                  "nodeType": "EnumValue",
                  "src": "1436:15:1"
                },
                {
                  "id": 21,
                  "name": "PurchaseNTokenResidual",
                  "nameLocation": "1548:22:1",
                  "nodeType": "EnumValue",
                  "src": "1548:22:1"
                },
                {
                  "id": 22,
                  "name": "SettleCashDebt",
                  "nameLocation": "1663:14:1",
                  "nodeType": "EnumValue",
                  "src": "1663:14:1"
                }
              ],
              "name": "TradeActionType",
              "nameLocation": "890:15:1",
              "nodeType": "EnumDefinition",
              "src": "885:794:1"
            },
            {
              "canonicalName": "DepositActionType",
              "id": 31,
              "members": [
                {
                  "id": 24,
                  "name": "None",
                  "nameLocation": "1846:4:1",
                  "nodeType": "EnumValue",
                  "src": "1846:4:1"
                },
                {
                  "id": 25,
                  "name": "DepositAsset",
                  "nameLocation": "1949:12:1",
                  "nodeType": "EnumValue",
                  "src": "1949:12:1"
                },
                {
                  "id": 26,
                  "name": "DepositUnderlying",
                  "nameLocation": "2112:17:1",
                  "nodeType": "EnumValue",
                  "src": "2112:17:1"
                },
                {
                  "id": 27,
                  "name": "DepositAssetAndMintNToken",
                  "nameLocation": "2283:25:1",
                  "nodeType": "EnumValue",
                  "src": "2283:25:1"
                },
                {
                  "id": 28,
                  "name": "DepositUnderlyingAndMintNToken",
                  "nameLocation": "2433:30:1",
                  "nodeType": "EnumValue",
                  "src": "2433:30:1"
                },
                {
                  "id": 29,
                  "name": "RedeemNToken",
                  "nameLocation": "2721:12:1",
                  "nodeType": "EnumValue",
                  "src": "2721:12:1"
                },
                {
                  "id": 30,
                  "name": "ConvertCashToNToken",
                  "nameLocation": "2908:19:1",
                  "nodeType": "EnumValue",
                  "src": "2908:19:1"
                }
              ],
              "name": "DepositActionType",
              "nameLocation": "1797:17:1",
              "nodeType": "EnumDefinition",
              "src": "1792:1137:1"
            },
            {
              "canonicalName": "AssetStorageState",
              "id": 35,
              "members": [
                {
                  "id": 32,
                  "name": "NoChange",
                  "nameLocation": "3015:8:1",
                  "nodeType": "EnumValue",
                  "src": "3015:8:1"
                },
                {
                  "id": 33,
                  "name": "Update",
                  "nameLocation": "3029:6:1",
                  "nodeType": "EnumValue",
                  "src": "3029:6:1"
                },
                {
                  "id": 34,
                  "name": "Delete",
                  "nameLocation": "3041:6:1",
                  "nodeType": "EnumValue",
                  "src": "3041:6:1"
                }
              ],
              "name": "AssetStorageState",
              "nameLocation": "2991:17:1",
              "nodeType": "EnumDefinition",
              "src": "2986:63:1"
            },
            {
              "canonicalName": "BalanceAction",
              "id": 49,
              "members": [
                {
                  "constant": false,
                  "id": 38,
                  "mutability": "mutable",
                  "name": "actionType",
                  "nameLocation": "3188:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3170:28:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_DepositActionType_$31",
                    "typeString": "enum DepositActionType"
                  },
                  "typeName": {
                    "id": 37,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 36,
                      "name": "DepositActionType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 31,
                      "src": "3170:17:1"
                    },
                    "referencedDeclaration": 31,
                    "src": "3170:17:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_DepositActionType_$31",
                      "typeString": "enum DepositActionType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 40,
                  "mutability": "mutable",
                  "name": "currencyId",
                  "nameLocation": "3211:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3204:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 39,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3204:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42,
                  "mutability": "mutable",
                  "name": "depositActionAmount",
                  "nameLocation": "3331:19:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3323:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 41,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3323:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44,
                  "mutability": "mutable",
                  "name": "withdrawAmountInternalPrecision",
                  "nameLocation": "3455:31:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3447:39:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3447:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 46,
                  "mutability": "mutable",
                  "name": "withdrawEntireCashBalance",
                  "nameLocation": "3645:25:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3640:30:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 45,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3640:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 48,
                  "mutability": "mutable",
                  "name": "redeemToUnderlying",
                  "nameLocation": "3764:18:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 49,
                  "src": "3759:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 47,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3759:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "BalanceAction",
              "nameLocation": "3111:13:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "3104:681:1",
              "visibility": "public"
            },
            {
              "canonicalName": "BatchLend",
              "id": 57,
              "members": [
                {
                  "constant": false,
                  "id": 51,
                  "mutability": "mutable",
                  "name": "currencyId",
                  "nameLocation": "3860:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "3853:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 50,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3853:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 53,
                  "mutability": "mutable",
                  "name": "depositUnderlying",
                  "nameLocation": "3974:17:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "3969:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 52,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3969:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 56,
                  "mutability": "mutable",
                  "name": "trades",
                  "nameLocation": "4111:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 57,
                  "src": "4101:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4101:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 55,
                    "nodeType": "ArrayTypeName",
                    "src": "4101:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "BatchLend",
              "nameLocation": "3837:9:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "3830:290:1",
              "visibility": "public"
            },
            {
              "canonicalName": "BalanceActionWithTrades",
              "id": 74,
              "members": [
                {
                  "constant": false,
                  "id": 60,
                  "mutability": "mutable",
                  "name": "actionType",
                  "nameLocation": "4249:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4231:28:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_DepositActionType_$31",
                    "typeString": "enum DepositActionType"
                  },
                  "typeName": {
                    "id": 59,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 58,
                      "name": "DepositActionType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 31,
                      "src": "4231:17:1"
                    },
                    "referencedDeclaration": 31,
                    "src": "4231:17:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_DepositActionType_$31",
                      "typeString": "enum DepositActionType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 62,
                  "mutability": "mutable",
                  "name": "currencyId",
                  "nameLocation": "4272:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4265:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 61,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "4265:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64,
                  "mutability": "mutable",
                  "name": "depositActionAmount",
                  "nameLocation": "4296:19:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4288:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 63,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4288:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 66,
                  "mutability": "mutable",
                  "name": "withdrawAmountInternalPrecision",
                  "nameLocation": "4329:31:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4321:39:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 65,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4321:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 68,
                  "mutability": "mutable",
                  "name": "withdrawEntireCashBalance",
                  "nameLocation": "4371:25:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4366:30:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 67,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4366:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 70,
                  "mutability": "mutable",
                  "name": "redeemToUnderlying",
                  "nameLocation": "4407:18:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4402:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 69,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4402:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 73,
                  "mutability": "mutable",
                  "name": "trades",
                  "nameLocation": "4545:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 74,
                  "src": "4535:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 71,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4535:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 72,
                    "nodeType": "ArrayTypeName",
                    "src": "4535:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "BalanceActionWithTrades",
              "nameLocation": "4201:23:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "4194:360:1",
              "visibility": "public"
            },
            {
              "canonicalName": "Token",
              "id": 86,
              "members": [
                {
                  "constant": false,
                  "id": 76,
                  "mutability": "mutable",
                  "name": "tokenAddress",
                  "nameLocation": "4635:12:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "4627:20:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 75,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4627:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 78,
                  "mutability": "mutable",
                  "name": "hasTransferFee",
                  "nameLocation": "4658:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "4653:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 77,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4653:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 80,
                  "mutability": "mutable",
                  "name": "decimals",
                  "nameLocation": "4685:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "4678:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 79,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4678:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 83,
                  "mutability": "mutable",
                  "name": "tokenType",
                  "nameLocation": "4709:9:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "4699:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_TokenType_$16",
                    "typeString": "enum TokenType"
                  },
                  "typeName": {
                    "id": 82,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 81,
                      "name": "TokenType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16,
                      "src": "4699:9:1"
                    },
                    "referencedDeclaration": 16,
                    "src": "4699:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TokenType_$16",
                      "typeString": "enum TokenType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 85,
                  "mutability": "mutable",
                  "name": "maxCollateralBalance",
                  "nameLocation": "4732:20:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 86,
                  "src": "4724:28:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 84,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4724:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "Token",
              "nameLocation": "4615:5:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "4608:147:1",
              "visibility": "public"
            },
            {
              "canonicalName": "PortfolioAsset",
              "id": 100,
              "members": [
                {
                  "constant": false,
                  "id": 88,
                  "mutability": "mutable",
                  "name": "currencyId",
                  "nameLocation": "4818:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "4810:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4810:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 90,
                  "mutability": "mutable",
                  "name": "maturity",
                  "nameLocation": "4842:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "4834:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 89,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4834:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 92,
                  "mutability": "mutable",
                  "name": "assetType",
                  "nameLocation": "4909:9:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "4901:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 91,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4901:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 94,
                  "mutability": "mutable",
                  "name": "notional",
                  "nameLocation": "4977:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "4970:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 93,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4970:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 96,
                  "mutability": "mutable",
                  "name": "storageSlot",
                  "nameLocation": "5046:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "5038:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 95,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5038:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 99,
                  "mutability": "mutable",
                  "name": "storageState",
                  "nameLocation": "5145:12:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 100,
                  "src": "5127:30:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_AssetStorageState_$35",
                    "typeString": "enum AssetStorageState"
                  },
                  "typeName": {
                    "id": 98,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 97,
                      "name": "AssetStorageState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 35,
                      "src": "5127:17:1"
                    },
                    "referencedDeclaration": 35,
                    "src": "5127:17:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_AssetStorageState_$35",
                      "typeString": "enum AssetStorageState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "PortfolioAsset",
              "nameLocation": "4764:14:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "4757:403:1",
              "visibility": "public"
            },
            {
              "canonicalName": "MarketParameters",
              "id": 117,
              "members": [
                {
                  "constant": false,
                  "id": 102,
                  "mutability": "mutable",
                  "name": "storageSlot",
                  "nameLocation": "5248:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5240:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5240:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 104,
                  "mutability": "mutable",
                  "name": "maturity",
                  "nameLocation": "5273:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5265:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 103,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5265:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 106,
                  "mutability": "mutable",
                  "name": "totalfCash",
                  "nameLocation": "5361:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5354:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5354:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 108,
                  "mutability": "mutable",
                  "name": "totalAssetCash",
                  "nameLocation": "5450:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5443:21:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 107,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5443:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 110,
                  "mutability": "mutable",
                  "name": "totalLiquidity",
                  "nameLocation": "5568:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5561:21:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 109,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5561:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 112,
                  "mutability": "mutable",
                  "name": "lastImpliedRate",
                  "nameLocation": "5682:15:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5674:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 111,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5674:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 114,
                  "mutability": "mutable",
                  "name": "oracleRate",
                  "nameLocation": "5793:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5785:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 113,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5785:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 116,
                  "mutability": "mutable",
                  "name": "previousTradeTime",
                  "nameLocation": "5868:17:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 117,
                  "src": "5860:25:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5860:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "MarketParameters",
              "nameLocation": "5217:16:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "5210:678:1",
              "visibility": "public"
            },
            {
              "canonicalName": "CashGroupSettings",
              "id": 142,
              "members": [
                {
                  "constant": false,
                  "id": 119,
                  "mutability": "mutable",
                  "name": "maxMarketIndex",
                  "nameLocation": "6431:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6425:20:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 118,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6425:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 121,
                  "mutability": "mutable",
                  "name": "rateOracleTimeWindowMin",
                  "nameLocation": "6530:23:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6524:29:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 120,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6524:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 123,
                  "mutability": "mutable",
                  "name": "totalFeeBPS",
                  "nameLocation": "6611:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6605:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 122,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6605:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 125,
                  "mutability": "mutable",
                  "name": "reserveFeeShare",
                  "nameLocation": "6708:15:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6702:21:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6702:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 127,
                  "mutability": "mutable",
                  "name": "debtBuffer5BPS",
                  "nameLocation": "6784:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6778:20:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 126,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6778:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 129,
                  "mutability": "mutable",
                  "name": "fCashHaircut5BPS",
                  "nameLocation": "6861:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "6855:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 128,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6855:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 131,
                  "mutability": "mutable",
                  "name": "settlementPenaltyRate5BPS",
                  "nameLocation": "7103:25:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "7097:31:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 130,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7097:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 133,
                  "mutability": "mutable",
                  "name": "liquidationfCashHaircut5BPS",
                  "nameLocation": "7258:27:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "7252:33:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 132,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7252:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 135,
                  "mutability": "mutable",
                  "name": "liquidationDebtBuffer5BPS",
                  "nameLocation": "7415:25:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "7409:31:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 134,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7409:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 138,
                  "mutability": "mutable",
                  "name": "liquidityTokenHaircuts",
                  "nameLocation": "7553:22:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "7545:30:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 136,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "7545:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 137,
                    "nodeType": "ArrayTypeName",
                    "src": "7545:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 141,
                  "mutability": "mutable",
                  "name": "rateScalars",
                  "nameLocation": "7653:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 142,
                  "src": "7645:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                    "typeString": "uint8[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 139,
                      "name": "uint8",
                      "nodeType": "ElementaryTypeName",
                      "src": "7645:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 140,
                    "nodeType": "ArrayTypeName",
                    "src": "7645:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
                      "typeString": "uint8[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "CashGroupSettings",
              "nameLocation": "6253:17:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "6246:1421:1",
              "visibility": "public"
            },
            {
              "canonicalName": "AccountContext",
              "id": 153,
              "members": [
                {
                  "constant": false,
                  "id": 144,
                  "mutability": "mutable",
                  "name": "nextSettleTime",
                  "nameLocation": "7910:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 153,
                  "src": "7903:21:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  },
                  "typeName": {
                    "id": 143,
                    "name": "uint40",
                    "nodeType": "ElementaryTypeName",
                    "src": "7903:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint40",
                      "typeString": "uint40"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 146,
                  "mutability": "mutable",
                  "name": "hasDebt",
                  "nameLocation": "8031:7:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 153,
                  "src": "8024:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes1",
                    "typeString": "bytes1"
                  },
                  "typeName": {
                    "id": 145,
                    "name": "bytes1",
                    "nodeType": "ElementaryTypeName",
                    "src": "8024:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 148,
                  "mutability": "mutable",
                  "name": "assetArrayLength",
                  "nameLocation": "8093:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 153,
                  "src": "8087:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 147,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "8087:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 150,
                  "mutability": "mutable",
                  "name": "bitmapCurrencyId",
                  "nameLocation": "8200:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 153,
                  "src": "8193:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 149,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "8193:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 152,
                  "mutability": "mutable",
                  "name": "activeCurrencies",
                  "nameLocation": "8287:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 153,
                  "src": "8279:24:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes18",
                    "typeString": "bytes18"
                  },
                  "typeName": {
                    "id": 151,
                    "name": "bytes18",
                    "nodeType": "ElementaryTypeName",
                    "src": "8279:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes18",
                      "typeString": "bytes18"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "AccountContext",
              "nameLocation": "7813:14:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "7806:500:1",
              "visibility": "public"
            },
            {
              "canonicalName": "AccountBalance",
              "id": 164,
              "members": [
                {
                  "constant": false,
                  "id": 155,
                  "mutability": "mutable",
                  "name": "currencyId",
                  "nameLocation": "8432:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 164,
                  "src": "8424:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8424:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 157,
                  "mutability": "mutable",
                  "name": "cashBalance",
                  "nameLocation": "8455:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 164,
                  "src": "8448:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 156,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8448:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 159,
                  "mutability": "mutable",
                  "name": "nTokenBalance",
                  "nameLocation": "8479:13:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 164,
                  "src": "8472:20:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 158,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8472:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 161,
                  "mutability": "mutable",
                  "name": "lastClaimTime",
                  "nameLocation": "8506:13:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 164,
                  "src": "8498:21:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 160,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8498:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "mutability": "mutable",
                  "name": "lastClaimIntegralSupply",
                  "nameLocation": "8533:23:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 164,
                  "src": "8525:31:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 162,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8525:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "AccountBalance",
              "nameLocation": "8403:14:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "8396:163:1",
              "visibility": "public"
            },
            {
              "canonicalName": "TokenStorage",
              "id": 176,
              "members": [
                {
                  "constant": false,
                  "id": 166,
                  "mutability": "mutable",
                  "name": "tokenAddress",
                  "nameLocation": "8838:12:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "8830:20:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8830:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 168,
                  "mutability": "mutable",
                  "name": "hasTransferFee",
                  "nameLocation": "8917:14:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "8912:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 167,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8912:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 171,
                  "mutability": "mutable",
                  "name": "tokenType",
                  "nameLocation": "8947:9:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "8937:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_TokenType_$16",
                    "typeString": "enum TokenType"
                  },
                  "typeName": {
                    "id": 170,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 169,
                      "name": "TokenType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16,
                      "src": "8937:9:1"
                    },
                    "referencedDeclaration": 16,
                    "src": "8937:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TokenType_$16",
                      "typeString": "enum TokenType"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 173,
                  "mutability": "mutable",
                  "name": "decimalPlaces",
                  "nameLocation": "8968:13:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "8962:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 172,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "8962:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 175,
                  "mutability": "mutable",
                  "name": "maxCollateralBalance",
                  "nameLocation": "9073:20:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 176,
                  "src": "9066:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint72",
                    "typeString": "uint72"
                  },
                  "typeName": {
                    "id": 174,
                    "name": "uint72",
                    "nodeType": "ElementaryTypeName",
                    "src": "9066:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint72",
                      "typeString": "uint72"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "TokenStorage",
              "nameLocation": "8783:12:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "8776:320:1",
              "visibility": "public"
            },
            {
              "canonicalName": "ETHRateStorage",
              "id": 190,
              "members": [
                {
                  "constant": false,
                  "id": 179,
                  "mutability": "mutable",
                  "name": "rateOracle",
                  "nameLocation": "9274:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9250:34:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                    "typeString": "contract AggregatorV2V3Interface"
                  },
                  "typeName": {
                    "id": 178,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 177,
                      "name": "AggregatorV2V3Interface",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 272,
                      "src": "9250:23:1"
                    },
                    "referencedDeclaration": 272,
                    "src": "9250:23:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                      "typeString": "contract AggregatorV2V3Interface"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 181,
                  "mutability": "mutable",
                  "name": "rateDecimalPlaces",
                  "nameLocation": "9361:17:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9355:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 180,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9355:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 183,
                  "mutability": "mutable",
                  "name": "mustInvert",
                  "nameLocation": "9439:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9434:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 182,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9434:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 185,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "9622:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9616:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 184,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9616:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 187,
                  "mutability": "mutable",
                  "name": "haircut",
                  "nameLocation": "9717:7:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9711:13:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 186,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9711:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 189,
                  "mutability": "mutable",
                  "name": "liquidationDiscount",
                  "nameLocation": "9815:19:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 190,
                  "src": "9809:25:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 188,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "9809:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "ETHRateStorage",
              "nameLocation": "9195:14:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "9188:649:1",
              "visibility": "public"
            },
            {
              "canonicalName": "AssetRateStorage",
              "id": 196,
              "members": [
                {
                  "constant": false,
                  "id": 193,
                  "mutability": "mutable",
                  "name": "rateOracle",
                  "nameLocation": "10014:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 196,
                  "src": "9997:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                    "typeString": "contract AssetRateAdapter"
                  },
                  "typeName": {
                    "id": 192,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 191,
                      "name": "AssetRateAdapter",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 362,
                      "src": "9997:16:1"
                    },
                    "referencedDeclaration": 362,
                    "src": "9997:16:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                      "typeString": "contract AssetRateAdapter"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 195,
                  "mutability": "mutable",
                  "name": "underlyingDecimalPlaces",
                  "nameLocation": "10086:23:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 196,
                  "src": "10080:29:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 194,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "10080:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "AssetRateStorage",
              "nameLocation": "9940:16:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "9933:179:1",
              "visibility": "public"
            },
            {
              "canonicalName": "ETHRate",
              "id": 207,
              "members": [
                {
                  "constant": false,
                  "id": 198,
                  "mutability": "mutable",
                  "name": "rateDecimals",
                  "nameLocation": "10320:12:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 207,
                  "src": "10313:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 197,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10313:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 200,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "10435:4:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 207,
                  "src": "10428:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 199,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10428:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 202,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "10540:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 207,
                  "src": "10533:13:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 201,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10533:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 204,
                  "mutability": "mutable",
                  "name": "haircut",
                  "nameLocation": "10647:7:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 207,
                  "src": "10640:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 203,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10640:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 206,
                  "mutability": "mutable",
                  "name": "liquidationDiscount",
                  "nameLocation": "10803:19:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 207,
                  "src": "10796:26:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 205,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10796:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "ETHRate",
              "nameLocation": "10202:7:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "10195:630:1",
              "visibility": "public"
            },
            {
              "canonicalName": "AssetRateParameters",
              "id": 215,
              "members": [
                {
                  "constant": false,
                  "id": 210,
                  "mutability": "mutable",
                  "name": "rateOracle",
                  "nameLocation": "10992:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "10975:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                    "typeString": "contract AssetRateAdapter"
                  },
                  "typeName": {
                    "id": 209,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 208,
                      "name": "AssetRateAdapter",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 362,
                      "src": "10975:16:1"
                    },
                    "referencedDeclaration": 362,
                    "src": "10975:16:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                      "typeString": "contract AssetRateAdapter"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 212,
                  "mutability": "mutable",
                  "name": "rate",
                  "nameLocation": "11102:4:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "11095:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 211,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11095:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 214,
                  "mutability": "mutable",
                  "name": "underlyingDecimals",
                  "nameLocation": "11203:18:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 215,
                  "src": "11196:25:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 213,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11196:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "name": "AssetRateParameters",
              "nameLocation": "10909:19:1",
              "nodeType": "StructDefinition",
              "scope": 216,
              "src": "10902:322:1",
              "visibility": "public"
            }
          ],
          "src": "32:11193:1"
        },
        "id": 1
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorInterface.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorInterface.sol",
          "exportedSymbols": {
            "AggregatorInterface": [
              263
            ]
          },
          "id": 264,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 217,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "32:24:2"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "AggregatorInterface",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 263,
              "linearizedBaseContracts": [
                263
              ],
              "name": "AggregatorInterface",
              "nameLocation": "68:19:2",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "50d25bcd",
                  "id": 222,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestAnswer",
                  "nameLocation": "101:12:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 218,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "113:2:2"
                  },
                  "returnParameters": {
                    "id": 221,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 220,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 222,
                        "src": "139:6:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 219,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "139:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "138:8:2"
                  },
                  "scope": 263,
                  "src": "92:55:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8205bf6a",
                  "id": 227,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestTimestamp",
                  "nameLocation": "159:15:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 223,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "174:2:2"
                  },
                  "returnParameters": {
                    "id": 226,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 225,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 227,
                        "src": "200:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 224,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "200:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "199:9:2"
                  },
                  "scope": 263,
                  "src": "150:59:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "668a0f02",
                  "id": 232,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestRound",
                  "nameLocation": "221:11:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 228,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "232:2:2"
                  },
                  "returnParameters": {
                    "id": 231,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 230,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 232,
                        "src": "258:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 229,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "258:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "257:9:2"
                  },
                  "scope": 263,
                  "src": "212:55:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b5ab58dc",
                  "id": 239,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAnswer",
                  "nameLocation": "279:9:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 235,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 234,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "297:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 239,
                        "src": "289:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 233,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "289:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "288:17:2"
                  },
                  "returnParameters": {
                    "id": 238,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 237,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 239,
                        "src": "329:6:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 236,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "329:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "328:8:2"
                  },
                  "scope": 263,
                  "src": "270:67:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b633620c",
                  "id": 246,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getTimestamp",
                  "nameLocation": "349:12:2",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 242,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 241,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "370:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 246,
                        "src": "362:15:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 240,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "362:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "361:17:2"
                  },
                  "returnParameters": {
                    "id": 245,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 244,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 246,
                        "src": "402:7:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 243,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "402:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "401:9:2"
                  },
                  "scope": 263,
                  "src": "340:71:2",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "anonymous": false,
                  "id": 254,
                  "name": "AnswerUpdated",
                  "nameLocation": "421:13:2",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 253,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 248,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "current",
                        "nameLocation": "450:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 254,
                        "src": "435:22:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 247,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "435:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 250,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "475:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 254,
                        "src": "459:23:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 249,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "459:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 252,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "updatedAt",
                        "nameLocation": "492:9:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 254,
                        "src": "484:17:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 251,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "484:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "434:68:2"
                  },
                  "src": "415:88:2"
                },
                {
                  "anonymous": false,
                  "id": 262,
                  "name": "NewRound",
                  "nameLocation": "512:8:2",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 261,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 256,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "537:7:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "521:23:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 255,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "521:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 258,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "startedBy",
                        "nameLocation": "562:9:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "546:25:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 257,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "546:7:2",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 260,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "startedAt",
                        "nameLocation": "581:9:2",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "573:17:2",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 259,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "573:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "520:71:2"
                  },
                  "src": "506:86:2"
                }
              ],
              "scope": 264,
              "src": "58:536:2",
              "usedErrors": []
            }
          ],
          "src": "32:562:2"
        },
        "id": 2
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol",
          "exportedSymbols": {
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ]
          },
          "id": 273,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 265,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "32:24:3"
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorInterface.sol",
              "file": "./AggregatorInterface.sol",
              "id": 266,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 273,
              "sourceUnit": 264,
              "src": "58:35:3",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorV3Interface.sol",
              "file": "./AggregatorV3Interface.sol",
              "id": 267,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 273,
              "sourceUnit": 319,
              "src": "94:37:3",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 268,
                    "name": "AggregatorInterface",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 263,
                    "src": "170:19:3"
                  },
                  "id": 269,
                  "nodeType": "InheritanceSpecifier",
                  "src": "170:19:3"
                },
                {
                  "baseName": {
                    "id": 270,
                    "name": "AggregatorV3Interface",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 318,
                    "src": "191:21:3"
                  },
                  "id": 271,
                  "nodeType": "InheritanceSpecifier",
                  "src": "191:21:3"
                }
              ],
              "canonicalName": "AggregatorV2V3Interface",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 272,
              "linearizedBaseContracts": [
                272,
                318,
                263
              ],
              "name": "AggregatorV2V3Interface",
              "nameLocation": "143:23:3",
              "nodeType": "ContractDefinition",
              "nodes": [],
              "scope": 273,
              "src": "133:83:3",
              "usedErrors": []
            }
          ],
          "src": "32:184:3"
        },
        "id": 3
      },
      "notional-solidity-sdk/interfaces/chainlink/AggregatorV3Interface.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorV3Interface.sol",
          "exportedSymbols": {
            "AggregatorV3Interface": [
              318
            ]
          },
          "id": 319,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 274,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "32:24:4"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "AggregatorV3Interface",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 318,
              "linearizedBaseContracts": [
                318
              ],
              "name": "AggregatorV3Interface",
              "nameLocation": "68:21:4",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "313ce567",
                  "id": 279,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "decimals",
                  "nameLocation": "104:8:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 275,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "112:2:4"
                  },
                  "returnParameters": {
                    "id": 278,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 277,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 279,
                        "src": "138:5:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 276,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "138:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "137:7:4"
                  },
                  "scope": 318,
                  "src": "95:50:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "7284e416",
                  "id": 284,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "description",
                  "nameLocation": "157:11:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 280,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "168:2:4"
                  },
                  "returnParameters": {
                    "id": 283,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 282,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 284,
                        "src": "194:13:4",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 281,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "194:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "193:15:4"
                  },
                  "scope": 318,
                  "src": "148:61:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "54fd4d50",
                  "id": 289,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "version",
                  "nameLocation": "221:7:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 285,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "228:2:4"
                  },
                  "returnParameters": {
                    "id": 288,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 287,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 289,
                        "src": "254:7:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 286,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "254:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "253:9:4"
                  },
                  "scope": 318,
                  "src": "212:51:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "9a6fc8f5",
                  "id": 304,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getRoundData",
                  "nameLocation": "487:12:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 292,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 291,
                        "mutability": "mutable",
                        "name": "_roundId",
                        "nameLocation": "507:8:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "500:15:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 290,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "500:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "499:17:4"
                  },
                  "returnParameters": {
                    "id": 303,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 294,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "566:7:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "559:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 293,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "559:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 296,
                        "mutability": "mutable",
                        "name": "answer",
                        "nameLocation": "588:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "581:13:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 295,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "581:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 298,
                        "mutability": "mutable",
                        "name": "startedAt",
                        "nameLocation": "610:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "602:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 297,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "602:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 300,
                        "mutability": "mutable",
                        "name": "updatedAt",
                        "nameLocation": "635:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "627:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 299,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "627:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 302,
                        "mutability": "mutable",
                        "name": "answeredInRound",
                        "nameLocation": "659:15:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 304,
                        "src": "652:22:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 301,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "652:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "551:129:4"
                  },
                  "scope": 318,
                  "src": "478:203:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "feaf968c",
                  "id": 317,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestRoundData",
                  "nameLocation": "694:15:4",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 305,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "709:2:4"
                  },
                  "returnParameters": {
                    "id": 316,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 307,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nameLocation": "761:7:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 317,
                        "src": "754:14:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 306,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "754:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 309,
                        "mutability": "mutable",
                        "name": "answer",
                        "nameLocation": "783:6:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 317,
                        "src": "776:13:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 308,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "776:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 311,
                        "mutability": "mutable",
                        "name": "startedAt",
                        "nameLocation": "805:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 317,
                        "src": "797:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 310,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "797:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 313,
                        "mutability": "mutable",
                        "name": "updatedAt",
                        "nameLocation": "830:9:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 317,
                        "src": "822:17:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 312,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "822:7:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 315,
                        "mutability": "mutable",
                        "name": "answeredInRound",
                        "nameLocation": "854:15:4",
                        "nodeType": "VariableDeclaration",
                        "scope": 317,
                        "src": "847:22:4",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 314,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "847:6:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "746:129:4"
                  },
                  "scope": 318,
                  "src": "685:191:4",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 319,
              "src": "58:821:4",
              "usedErrors": []
            }
          ],
          "src": "32:847:4"
        },
        "id": 4
      },
      "notional-solidity-sdk/interfaces/notional/AssetRateAdapter.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/AssetRateAdapter.sol",
          "exportedSymbols": {
            "AssetRateAdapter": [
              362
            ]
          },
          "id": 363,
          "license": "GPL-v3",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 320,
              "literals": [
                "solidity",
                ">=",
                "0.7",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "35:24:5"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "AssetRateAdapter",
              "contractDependencies": [],
              "contractKind": "interface",
              "documentation": {
                "id": 321,
                "nodeType": "StructuredDocumentation",
                "src": "61:189:5",
                "text": "@notice Used as a wrapper for tokens that are interest bearing for an\n underlying token. Follows the cToken interface, however, can be adapted\n for other interest bearing tokens."
              },
              "fullyImplemented": false,
              "id": 362,
              "linearizedBaseContracts": [
                362
              ],
              "name": "AssetRateAdapter",
              "nameLocation": "260:16:5",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "fc0c546a",
                  "id": 326,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "token",
                  "nameLocation": "292:5:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 322,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "297:2:5"
                  },
                  "returnParameters": {
                    "id": 325,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 324,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 326,
                        "src": "323:7:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 323,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "323:7:5",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "322:9:5"
                  },
                  "scope": 362,
                  "src": "283:49:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "313ce567",
                  "id": 331,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "decimals",
                  "nameLocation": "347:8:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 327,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "355:2:5"
                  },
                  "returnParameters": {
                    "id": 330,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 329,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 331,
                        "src": "381:5:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 328,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "381:5:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "380:7:5"
                  },
                  "scope": 362,
                  "src": "338:50:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "7284e416",
                  "id": 336,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "description",
                  "nameLocation": "403:11:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 332,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "414:2:5"
                  },
                  "returnParameters": {
                    "id": 335,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 334,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 336,
                        "src": "440:13:5",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 333,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "440:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "439:15:5"
                  },
                  "scope": 362,
                  "src": "394:61:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "54fd4d50",
                  "id": 341,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "version",
                  "nameLocation": "470:7:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 337,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "477:2:5"
                  },
                  "returnParameters": {
                    "id": 340,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 339,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 341,
                        "src": "503:7:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 338,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "503:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "502:9:5"
                  },
                  "scope": 362,
                  "src": "461:51:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "6f307dc3",
                  "id": 346,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "underlying",
                  "nameLocation": "527:10:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 342,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "537:2:5"
                  },
                  "returnParameters": {
                    "id": 345,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 344,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 346,
                        "src": "563:7:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 343,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "563:7:5",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "562:9:5"
                  },
                  "scope": 362,
                  "src": "518:54:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "1ee10833",
                  "id": 351,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getExchangeRateStateful",
                  "nameLocation": "587:23:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 347,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "610:2:5"
                  },
                  "returnParameters": {
                    "id": 350,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 349,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 351,
                        "src": "631:6:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 348,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "631:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "630:8:5"
                  },
                  "scope": 362,
                  "src": "578:61:5",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b2fffb04",
                  "id": 356,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getExchangeRateView",
                  "nameLocation": "654:19:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 352,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "673:2:5"
                  },
                  "returnParameters": {
                    "id": 355,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 354,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 356,
                        "src": "699:6:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 353,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "699:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "698:8:5"
                  },
                  "scope": 362,
                  "src": "645:62:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "dd30a666",
                  "id": 361,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAnnualizedSupplyRate",
                  "nameLocation": "722:23:5",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 357,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "745:2:5"
                  },
                  "returnParameters": {
                    "id": 360,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 359,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 361,
                        "src": "771:7:5",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 358,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "771:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "770:9:5"
                  },
                  "scope": 362,
                  "src": "713:67:5",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 363,
              "src": "250:532:5",
              "usedErrors": []
            }
          ],
          "src": "35:748:5"
        },
        "id": 5
      },
      "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol",
          "exportedSymbols": {
            "AccountBalance": [
              164
            ],
            "AccountContext": [
              153
            ],
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ],
            "AssetRateAdapter": [
              362
            ],
            "AssetRateParameters": [
              215
            ],
            "AssetRateStorage": [
              196
            ],
            "AssetStorageState": [
              35
            ],
            "BalanceAction": [
              49
            ],
            "BalanceActionWithTrades": [
              74
            ],
            "BatchLend": [
              57
            ],
            "CashGroupSettings": [
              142
            ],
            "DepositActionType": [
              31
            ],
            "ETHRate": [
              207
            ],
            "ETHRateStorage": [
              190
            ],
            "MarketParameters": [
              117
            ],
            "NotionalGovernance": [
              584
            ],
            "PortfolioAsset": [
              100
            ],
            "Token": [
              86
            ],
            "TokenStorage": [
              176
            ],
            "TokenType": [
              16
            ],
            "TradeActionType": [
              23
            ]
          },
          "id": 585,
          "license": "GPL-3.0-only",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 364,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "41:23:6"
            },
            {
              "id": 365,
              "literals": [
                "abicoder",
                "v2"
              ],
              "nodeType": "PragmaDirective",
              "src": "65:19:6"
            },
            {
              "absolutePath": "notional-solidity-sdk/contracts/lib/Types.sol",
              "file": "../../contracts/lib/Types.sol",
              "id": 366,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 585,
              "sourceUnit": 216,
              "src": "86:39:6",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/chainlink/AggregatorV2V3Interface.sol",
              "file": "../chainlink/AggregatorV2V3Interface.sol",
              "id": 367,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 585,
              "sourceUnit": 273,
              "src": "126:50:6",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "NotionalGovernance",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 584,
              "linearizedBaseContracts": [
                584
              ],
              "name": "NotionalGovernance",
              "nameLocation": "188:18:6",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "id": 371,
                  "name": "ListCurrency",
                  "nameLocation": "219:12:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 370,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 369,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "newCurrencyId",
                        "nameLocation": "239:13:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 371,
                        "src": "232:20:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 368,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "232:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "231:22:6"
                  },
                  "src": "213:41:6"
                },
                {
                  "anonymous": false,
                  "id": 375,
                  "name": "UpdateETHRate",
                  "nameLocation": "265:13:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 374,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 373,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "286:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 375,
                        "src": "279:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 372,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "279:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "278:19:6"
                  },
                  "src": "259:39:6"
                },
                {
                  "anonymous": false,
                  "id": 379,
                  "name": "UpdateAssetRate",
                  "nameLocation": "309:15:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 378,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 377,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "332:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 379,
                        "src": "325:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 376,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "325:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "324:19:6"
                  },
                  "src": "303:41:6"
                },
                {
                  "anonymous": false,
                  "id": 383,
                  "name": "UpdateCashGroup",
                  "nameLocation": "355:15:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 382,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 381,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "378:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 383,
                        "src": "371:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 380,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "371:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "370:19:6"
                  },
                  "src": "349:41:6"
                },
                {
                  "anonymous": false,
                  "id": 389,
                  "name": "DeployNToken",
                  "nameLocation": "401:12:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 388,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 385,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "421:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 389,
                        "src": "414:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 384,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "414:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 387,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "nTokenAddress",
                        "nameLocation": "441:13:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 389,
                        "src": "433:21:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 386,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "433:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "413:42:6"
                  },
                  "src": "395:61:6"
                },
                {
                  "anonymous": false,
                  "id": 393,
                  "name": "UpdateDepositParameters",
                  "nameLocation": "467:23:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 392,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 391,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "498:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 393,
                        "src": "491:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 390,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "491:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "490:19:6"
                  },
                  "src": "461:49:6"
                },
                {
                  "anonymous": false,
                  "id": 397,
                  "name": "UpdateInitializationParameters",
                  "nameLocation": "521:30:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 396,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 395,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "559:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 397,
                        "src": "552:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 394,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "552:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "551:19:6"
                  },
                  "src": "515:56:6"
                },
                {
                  "anonymous": false,
                  "id": 403,
                  "name": "UpdateIncentiveEmissionRate",
                  "nameLocation": "582:27:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 402,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 399,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "617:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 403,
                        "src": "610:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 398,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "610:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 401,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "newEmissionRate",
                        "nameLocation": "636:15:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 403,
                        "src": "629:22:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "typeName": {
                          "id": 400,
                          "name": "uint32",
                          "nodeType": "ElementaryTypeName",
                          "src": "629:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "609:43:6"
                  },
                  "src": "576:77:6"
                },
                {
                  "anonymous": false,
                  "id": 407,
                  "name": "UpdateTokenCollateralParameters",
                  "nameLocation": "664:31:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 406,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 405,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "703:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 407,
                        "src": "696:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 404,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "696:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "695:19:6"
                  },
                  "src": "658:57:6"
                },
                {
                  "anonymous": false,
                  "id": 413,
                  "name": "UpdateGlobalTransferOperator",
                  "nameLocation": "726:28:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 412,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 409,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "763:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 413,
                        "src": "755:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 408,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "755:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 411,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "778:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 413,
                        "src": "773:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 410,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "773:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "754:33:6"
                  },
                  "src": "720:68:6"
                },
                {
                  "anonymous": false,
                  "id": 419,
                  "name": "UpdateAuthorizedCallbackContract",
                  "nameLocation": "799:32:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 418,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 415,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "840:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 419,
                        "src": "832:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 414,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "832:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 417,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "855:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 419,
                        "src": "850:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 416,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "850:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "831:33:6"
                  },
                  "src": "793:72:6"
                },
                {
                  "anonymous": false,
                  "id": 425,
                  "name": "UpdateMaxCollateralBalance",
                  "nameLocation": "876:26:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 424,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 421,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "910:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 425,
                        "src": "903:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 420,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "903:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 423,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "maxCollateralBalance",
                        "nameLocation": "929:20:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 425,
                        "src": "922:27:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        },
                        "typeName": {
                          "id": 422,
                          "name": "uint72",
                          "nodeType": "ElementaryTypeName",
                          "src": "922:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "902:48:6"
                  },
                  "src": "870:81:6"
                },
                {
                  "anonymous": false,
                  "id": 431,
                  "name": "OwnershipTransferred",
                  "nameLocation": "962:20:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 430,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 427,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "previousOwner",
                        "nameLocation": "999:13:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 431,
                        "src": "983:29:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 426,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "983:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 429,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "newOwner",
                        "nameLocation": "1030:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 431,
                        "src": "1014:24:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 428,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1014:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "982:57:6"
                  },
                  "src": "956:84:6"
                },
                {
                  "anonymous": false,
                  "id": 437,
                  "name": "PauseRouterAndGuardianUpdated",
                  "nameLocation": "1051:29:6",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 436,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 433,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "pauseRouter",
                        "nameLocation": "1097:11:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 437,
                        "src": "1081:27:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 432,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1081:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 435,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "pauseGuardian",
                        "nameLocation": "1126:13:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 437,
                        "src": "1110:29:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 434,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1110:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1080:60:6"
                  },
                  "src": "1045:96:6"
                },
                {
                  "functionSelector": "f2fde38b",
                  "id": 442,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "transferOwnership",
                  "nameLocation": "1156:17:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 440,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 439,
                        "mutability": "mutable",
                        "name": "newOwner",
                        "nameLocation": "1182:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 442,
                        "src": "1174:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 438,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1174:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1173:18:6"
                  },
                  "returnParameters": {
                    "id": 441,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1200:0:6"
                  },
                  "scope": 584,
                  "src": "1147:54:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "744ec0ef",
                  "id": 449,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setPauseRouterAndGuardian",
                  "nameLocation": "1216:25:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 447,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 444,
                        "mutability": "mutable",
                        "name": "pauseRouter_",
                        "nameLocation": "1250:12:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 449,
                        "src": "1242:20:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 443,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1242:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 446,
                        "mutability": "mutable",
                        "name": "pauseGuardian_",
                        "nameLocation": "1272:14:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 449,
                        "src": "1264:22:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 445,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1264:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1241:46:6"
                  },
                  "returnParameters": {
                    "id": 448,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1296:0:6"
                  },
                  "scope": 584,
                  "src": "1207:90:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "f575e4e2",
                  "id": 471,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "listCurrency",
                  "nameLocation": "1312:12:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 467,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 452,
                        "mutability": "mutable",
                        "name": "assetToken",
                        "nameLocation": "1356:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1334:32:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenStorage_$176_calldata_ptr",
                          "typeString": "struct TokenStorage"
                        },
                        "typeName": {
                          "id": 451,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 450,
                            "name": "TokenStorage",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 176,
                            "src": "1334:12:6"
                          },
                          "referencedDeclaration": 176,
                          "src": "1334:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenStorage_$176_storage_ptr",
                            "typeString": "struct TokenStorage"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 455,
                        "mutability": "mutable",
                        "name": "underlyingToken",
                        "nameLocation": "1398:15:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1376:37:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_TokenStorage_$176_calldata_ptr",
                          "typeString": "struct TokenStorage"
                        },
                        "typeName": {
                          "id": 454,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 453,
                            "name": "TokenStorage",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 176,
                            "src": "1376:12:6"
                          },
                          "referencedDeclaration": 176,
                          "src": "1376:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenStorage_$176_storage_ptr",
                            "typeString": "struct TokenStorage"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 458,
                        "mutability": "mutable",
                        "name": "rateOracle",
                        "nameLocation": "1447:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1423:34:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                          "typeString": "contract AggregatorV2V3Interface"
                        },
                        "typeName": {
                          "id": 457,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 456,
                            "name": "AggregatorV2V3Interface",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 272,
                            "src": "1423:23:6"
                          },
                          "referencedDeclaration": 272,
                          "src": "1423:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                            "typeString": "contract AggregatorV2V3Interface"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 460,
                        "mutability": "mutable",
                        "name": "mustInvert",
                        "nameLocation": "1472:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1467:15:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 459,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1467:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 462,
                        "mutability": "mutable",
                        "name": "buffer",
                        "nameLocation": "1498:6:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1492:12:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 461,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1492:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 464,
                        "mutability": "mutable",
                        "name": "haircut",
                        "nameLocation": "1520:7:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1514:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 463,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1514:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 466,
                        "mutability": "mutable",
                        "name": "liquidationDiscount",
                        "nameLocation": "1543:19:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1537:25:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 465,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1537:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1324:244:6"
                  },
                  "returnParameters": {
                    "id": 470,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 469,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1594:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 471,
                        "src": "1587:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 468,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1587:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1586:19:6"
                  },
                  "scope": 584,
                  "src": "1303:303:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "98dcbc23",
                  "id": 478,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateMaxCollateralBalance",
                  "nameLocation": "1621:26:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 476,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 473,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1664:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 478,
                        "src": "1657:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 472,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1657:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 475,
                        "mutability": "mutable",
                        "name": "maxCollateralBalanceInternalPrecision",
                        "nameLocation": "1691:37:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 478,
                        "src": "1684:44:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        },
                        "typeName": {
                          "id": 474,
                          "name": "uint72",
                          "nodeType": "ElementaryTypeName",
                          "src": "1684:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1647:87:6"
                  },
                  "returnParameters": {
                    "id": 477,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1743:0:6"
                  },
                  "scope": 584,
                  "src": "1612:132:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e31051a1",
                  "id": 493,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "enableCashGroup",
                  "nameLocation": "1759:15:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 491,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 480,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1791:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 493,
                        "src": "1784:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 479,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1784:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 483,
                        "mutability": "mutable",
                        "name": "assetRateOracle",
                        "nameLocation": "1828:15:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 493,
                        "src": "1811:32:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                          "typeString": "contract AssetRateAdapter"
                        },
                        "typeName": {
                          "id": 482,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 481,
                            "name": "AssetRateAdapter",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 362,
                            "src": "1811:16:6"
                          },
                          "referencedDeclaration": 362,
                          "src": "1811:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                            "typeString": "contract AssetRateAdapter"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 486,
                        "mutability": "mutable",
                        "name": "cashGroup",
                        "nameLocation": "1880:9:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 493,
                        "src": "1853:36:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CashGroupSettings_$142_calldata_ptr",
                          "typeString": "struct CashGroupSettings"
                        },
                        "typeName": {
                          "id": 485,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 484,
                            "name": "CashGroupSettings",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 142,
                            "src": "1853:17:6"
                          },
                          "referencedDeclaration": 142,
                          "src": "1853:17:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CashGroupSettings_$142_storage_ptr",
                            "typeString": "struct CashGroupSettings"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 488,
                        "mutability": "mutable",
                        "name": "underlyingName",
                        "nameLocation": "1915:14:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 493,
                        "src": "1899:30:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 487,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "1899:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 490,
                        "mutability": "mutable",
                        "name": "underlyingSymbol",
                        "nameLocation": "1955:16:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 493,
                        "src": "1939:32:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 489,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "1939:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1774:203:6"
                  },
                  "returnParameters": {
                    "id": 492,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1986:0:6"
                  },
                  "scope": 584,
                  "src": "1750:237:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "cfaaf474",
                  "id": 504,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateDepositParameters",
                  "nameLocation": "2002:23:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 502,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 495,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2042:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 504,
                        "src": "2035:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 494,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2035:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 498,
                        "mutability": "mutable",
                        "name": "depositShares",
                        "nameLocation": "2080:13:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 504,
                        "src": "2062:31:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
                          "typeString": "uint32[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 496,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2062:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "id": 497,
                          "nodeType": "ArrayTypeName",
                          "src": "2062:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
                            "typeString": "uint32[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 501,
                        "mutability": "mutable",
                        "name": "leverageThresholds",
                        "nameLocation": "2121:18:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 504,
                        "src": "2103:36:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
                          "typeString": "uint32[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 499,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2103:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "id": 500,
                          "nodeType": "ArrayTypeName",
                          "src": "2103:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
                            "typeString": "uint32[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2025:120:6"
                  },
                  "returnParameters": {
                    "id": 503,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2154:0:6"
                  },
                  "scope": 584,
                  "src": "1993:162:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "413f2c5f",
                  "id": 515,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateInitializationParameters",
                  "nameLocation": "2170:30:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 513,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 506,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2217:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 515,
                        "src": "2210:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 505,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2210:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 509,
                        "mutability": "mutable",
                        "name": "annualizedAnchorRates",
                        "nameLocation": "2255:21:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 515,
                        "src": "2237:39:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
                          "typeString": "uint32[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 507,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2237:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "id": 508,
                          "nodeType": "ArrayTypeName",
                          "src": "2237:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
                            "typeString": "uint32[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 512,
                        "mutability": "mutable",
                        "name": "proportions",
                        "nameLocation": "2304:11:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 515,
                        "src": "2286:29:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr",
                          "typeString": "uint32[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 510,
                            "name": "uint32",
                            "nodeType": "ElementaryTypeName",
                            "src": "2286:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "id": 511,
                          "nodeType": "ArrayTypeName",
                          "src": "2286:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
                            "typeString": "uint32[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2200:121:6"
                  },
                  "returnParameters": {
                    "id": 514,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2330:0:6"
                  },
                  "scope": 584,
                  "src": "2161:170:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "a9d7bc52",
                  "id": 522,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateIncentiveEmissionRate",
                  "nameLocation": "2346:27:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 520,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 517,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2381:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 522,
                        "src": "2374:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 516,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2374:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 519,
                        "mutability": "mutable",
                        "name": "newEmissionRate",
                        "nameLocation": "2400:15:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 522,
                        "src": "2393:22:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "typeName": {
                          "id": 518,
                          "name": "uint32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2393:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2373:43:6"
                  },
                  "returnParameters": {
                    "id": 521,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2425:0:6"
                  },
                  "scope": 584,
                  "src": "2337:89:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "3436a19c",
                  "id": 537,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateTokenCollateralParameters",
                  "nameLocation": "2441:31:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 535,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 524,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2489:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2482:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 523,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2482:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 526,
                        "mutability": "mutable",
                        "name": "residualPurchaseIncentive10BPS",
                        "nameLocation": "2515:30:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2509:36:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 525,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2509:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 528,
                        "mutability": "mutable",
                        "name": "pvHaircutPercentage",
                        "nameLocation": "2561:19:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2555:25:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 527,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2555:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 530,
                        "mutability": "mutable",
                        "name": "residualPurchaseTimeBufferHours",
                        "nameLocation": "2596:31:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2590:37:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 529,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2590:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 532,
                        "mutability": "mutable",
                        "name": "cashWithholdingBuffer10BPS",
                        "nameLocation": "2643:26:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2637:32:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 531,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2637:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 534,
                        "mutability": "mutable",
                        "name": "liquidationHaircutPercentage",
                        "nameLocation": "2685:28:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 537,
                        "src": "2679:34:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 533,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2679:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2472:247:6"
                  },
                  "returnParameters": {
                    "id": 536,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2728:0:6"
                  },
                  "scope": 584,
                  "src": "2432:297:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "a11a4293",
                  "id": 545,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateCashGroup",
                  "nameLocation": "2744:15:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 543,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 539,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2767:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 545,
                        "src": "2760:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 538,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2760:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 542,
                        "mutability": "mutable",
                        "name": "cashGroup",
                        "nameLocation": "2806:9:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 545,
                        "src": "2779:36:6",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CashGroupSettings_$142_calldata_ptr",
                          "typeString": "struct CashGroupSettings"
                        },
                        "typeName": {
                          "id": 541,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 540,
                            "name": "CashGroupSettings",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 142,
                            "src": "2779:17:6"
                          },
                          "referencedDeclaration": 142,
                          "src": "2779:17:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CashGroupSettings_$142_storage_ptr",
                            "typeString": "struct CashGroupSettings"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2759:57:6"
                  },
                  "returnParameters": {
                    "id": 544,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2825:0:6"
                  },
                  "scope": 584,
                  "src": "2735:91:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "a508eca0",
                  "id": 553,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateAssetRate",
                  "nameLocation": "2841:15:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 551,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 547,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2864:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 553,
                        "src": "2857:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 546,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2857:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 550,
                        "mutability": "mutable",
                        "name": "rateOracle",
                        "nameLocation": "2893:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 553,
                        "src": "2876:27:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                          "typeString": "contract AssetRateAdapter"
                        },
                        "typeName": {
                          "id": 549,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 548,
                            "name": "AssetRateAdapter",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 362,
                            "src": "2876:16:6"
                          },
                          "referencedDeclaration": 362,
                          "src": "2876:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AssetRateAdapter_$362",
                            "typeString": "contract AssetRateAdapter"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2856:48:6"
                  },
                  "returnParameters": {
                    "id": 552,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2913:0:6"
                  },
                  "scope": 584,
                  "src": "2832:82:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "c572cae4",
                  "id": 569,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateETHRate",
                  "nameLocation": "2929:13:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 567,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 555,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2959:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "2952:17:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 554,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2952:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 558,
                        "mutability": "mutable",
                        "name": "rateOracle",
                        "nameLocation": "3003:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "2979:34:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                          "typeString": "contract AggregatorV2V3Interface"
                        },
                        "typeName": {
                          "id": 557,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 556,
                            "name": "AggregatorV2V3Interface",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 272,
                            "src": "2979:23:6"
                          },
                          "referencedDeclaration": 272,
                          "src": "2979:23:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AggregatorV2V3Interface_$272",
                            "typeString": "contract AggregatorV2V3Interface"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 560,
                        "mutability": "mutable",
                        "name": "mustInvert",
                        "nameLocation": "3028:10:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "3023:15:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 559,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3023:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 562,
                        "mutability": "mutable",
                        "name": "buffer",
                        "nameLocation": "3054:6:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "3048:12:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 561,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "3048:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 564,
                        "mutability": "mutable",
                        "name": "haircut",
                        "nameLocation": "3076:7:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "3070:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 563,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "3070:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 566,
                        "mutability": "mutable",
                        "name": "liquidationDiscount",
                        "nameLocation": "3099:19:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 569,
                        "src": "3093:25:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 565,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "3093:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2942:182:6"
                  },
                  "returnParameters": {
                    "id": 568,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3133:0:6"
                  },
                  "scope": 584,
                  "src": "2920:214:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "353abc5d",
                  "id": 576,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateGlobalTransferOperator",
                  "nameLocation": "3149:28:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 574,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 571,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "3186:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "3178:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 570,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3178:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 573,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "3201:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 576,
                        "src": "3196:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 572,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3196:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3177:33:6"
                  },
                  "returnParameters": {
                    "id": 575,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3219:0:6"
                  },
                  "scope": 584,
                  "src": "3140:80:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "fa17b5f1",
                  "id": 583,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updateAuthorizedCallbackContract",
                  "nameLocation": "3235:32:6",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 581,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 578,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "3276:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 583,
                        "src": "3268:16:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 577,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3268:7:6",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 580,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "3291:8:6",
                        "nodeType": "VariableDeclaration",
                        "scope": 583,
                        "src": "3286:13:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 579,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3286:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3267:33:6"
                  },
                  "returnParameters": {
                    "id": 582,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3309:0:6"
                  },
                  "scope": 584,
                  "src": "3226:84:6",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 585,
              "src": "178:3134:6",
              "usedErrors": []
            }
          ],
          "src": "41:3272:6"
        },
        "id": 6
      },
      "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalProxy.sol",
          "exportedSymbols": {
            "AccountBalance": [
              164
            ],
            "AccountContext": [
              153
            ],
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ],
            "AssetRateAdapter": [
              362
            ],
            "AssetRateParameters": [
              215
            ],
            "AssetRateStorage": [
              196
            ],
            "AssetStorageState": [
              35
            ],
            "BalanceAction": [
              49
            ],
            "BalanceActionWithTrades": [
              74
            ],
            "BatchLend": [
              57
            ],
            "CashGroupSettings": [
              142
            ],
            "DepositActionType": [
              31
            ],
            "ETHRate": [
              207
            ],
            "ETHRateStorage": [
              190
            ],
            "MarketParameters": [
              117
            ],
            "NotionalGovernance": [
              584
            ],
            "NotionalProxy": [
              1036
            ],
            "NotionalViews": [
              1350
            ],
            "PortfolioAsset": [
              100
            ],
            "Token": [
              86
            ],
            "TokenStorage": [
              176
            ],
            "TokenType": [
              16
            ],
            "TradeActionType": [
              23
            ],
            "nERC1155Interface": [
              1512
            ],
            "nTokenERC20": [
              1628
            ]
          },
          "id": 1037,
          "license": "GPL-3.0-only",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 586,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "41:23:7"
            },
            {
              "id": 587,
              "literals": [
                "abicoder",
                "v2"
              ],
              "nodeType": "PragmaDirective",
              "src": "65:19:7"
            },
            {
              "absolutePath": "notional-solidity-sdk/contracts/lib/Types.sol",
              "file": "../../contracts/lib/Types.sol",
              "id": 588,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1037,
              "sourceUnit": 216,
              "src": "86:39:7",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/nTokenERC20.sol",
              "file": "./nTokenERC20.sol",
              "id": 589,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1037,
              "sourceUnit": 1629,
              "src": "126:27:7",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/nERC1155Interface.sol",
              "file": "./nERC1155Interface.sol",
              "id": 590,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1037,
              "sourceUnit": 1513,
              "src": "154:33:7",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalGovernance.sol",
              "file": "./NotionalGovernance.sol",
              "id": 591,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1037,
              "sourceUnit": 585,
              "src": "188:34:7",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalViews.sol",
              "file": "./NotionalViews.sol",
              "id": 592,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1037,
              "sourceUnit": 1351,
              "src": "223:29:7",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 593,
                    "name": "nTokenERC20",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 1628,
                    "src": "281:11:7"
                  },
                  "id": 594,
                  "nodeType": "InheritanceSpecifier",
                  "src": "281:11:7"
                },
                {
                  "baseName": {
                    "id": 595,
                    "name": "nERC1155Interface",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 1512,
                    "src": "294:17:7"
                  },
                  "id": 596,
                  "nodeType": "InheritanceSpecifier",
                  "src": "294:17:7"
                },
                {
                  "baseName": {
                    "id": 597,
                    "name": "NotionalGovernance",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 584,
                    "src": "313:18:7"
                  },
                  "id": 598,
                  "nodeType": "InheritanceSpecifier",
                  "src": "313:18:7"
                },
                {
                  "baseName": {
                    "id": 599,
                    "name": "NotionalViews",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 1350,
                    "src": "333:13:7"
                  },
                  "id": 600,
                  "nodeType": "InheritanceSpecifier",
                  "src": "333:13:7"
                }
              ],
              "canonicalName": "NotionalProxy",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 1036,
              "linearizedBaseContracts": [
                1036,
                1350,
                584,
                1512,
                1628
              ],
              "name": "NotionalProxy",
              "nameLocation": "264:13:7",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 601,
                    "nodeType": "StructuredDocumentation",
                    "src": "353:26:7",
                    "text": "User trading events "
                  },
                  "id": 609,
                  "name": "CashBalanceChange",
                  "nameLocation": "390:17:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 608,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 603,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "424:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 609,
                        "src": "408:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 602,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "408:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 605,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "448:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 609,
                        "src": "433:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 604,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "433:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 607,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netCashChange",
                        "nameLocation": "467:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 609,
                        "src": "460:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 606,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "460:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "407:74:7"
                  },
                  "src": "384:98:7"
                },
                {
                  "anonymous": false,
                  "id": 617,
                  "name": "nTokenSupplyChange",
                  "nameLocation": "493:18:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 616,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 611,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "528:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 617,
                        "src": "512:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 610,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "512:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 613,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "552:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 617,
                        "src": "537:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 612,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "537:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 615,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "tokenSupplyChange",
                        "nameLocation": "571:17:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 617,
                        "src": "564:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 614,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "564:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "511:78:7"
                  },
                  "src": "487:103:7"
                },
                {
                  "anonymous": false,
                  "id": 621,
                  "name": "MarketsInitialized",
                  "nameLocation": "601:18:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 620,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 619,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "627:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 621,
                        "src": "620:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 618,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "620:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "619:19:7"
                  },
                  "src": "595:44:7"
                },
                {
                  "anonymous": false,
                  "id": 627,
                  "name": "SweepCashIntoMarkets",
                  "nameLocation": "650:20:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 626,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 623,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "678:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 627,
                        "src": "671:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 622,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "671:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 625,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "cashIntoMarkets",
                        "nameLocation": "697:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 627,
                        "src": "690:22:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 624,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "690:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "670:43:7"
                  },
                  "src": "644:70:7"
                },
                {
                  "anonymous": false,
                  "id": 639,
                  "name": "SettledCashDebt",
                  "nameLocation": "725:15:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 638,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 629,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "settledAccount",
                        "nameLocation": "766:14:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 639,
                        "src": "750:30:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 628,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "750:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 631,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "805:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 639,
                        "src": "790:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 630,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "790:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 633,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "settler",
                        "nameLocation": "841:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 639,
                        "src": "825:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 632,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "825:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 635,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amountToSettleAsset",
                        "nameLocation": "865:19:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 639,
                        "src": "858:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 634,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "858:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 637,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fCashAmount",
                        "nameLocation": "901:11:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 639,
                        "src": "894:18:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 636,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "894:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "740:178:7"
                  },
                  "src": "719:200:7"
                },
                {
                  "anonymous": false,
                  "id": 651,
                  "name": "nTokenResidualPurchase",
                  "nameLocation": "930:22:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 650,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 641,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "977:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 651,
                        "src": "962:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 640,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "962:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 643,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1012:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 651,
                        "src": "997:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "typeName": {
                          "id": 642,
                          "name": "uint40",
                          "nodeType": "ElementaryTypeName",
                          "src": "997:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 645,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "purchaser",
                        "nameLocation": "1046:9:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 651,
                        "src": "1030:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 644,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1030:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 647,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fCashAmountToPurchase",
                        "nameLocation": "1072:21:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 651,
                        "src": "1065:28:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 646,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1065:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 649,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netAssetCashNToken",
                        "nameLocation": "1110:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 651,
                        "src": "1103:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 648,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1103:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "952:182:7"
                  },
                  "src": "924:211:7"
                },
                {
                  "anonymous": false,
                  "id": 663,
                  "name": "LendBorrowTrade",
                  "nameLocation": "1146:15:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 662,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 653,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "1187:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 663,
                        "src": "1171:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 652,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1171:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 655,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1219:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 663,
                        "src": "1204:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 654,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1204:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 657,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1246:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 663,
                        "src": "1239:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "typeName": {
                          "id": 656,
                          "name": "uint40",
                          "nodeType": "ElementaryTypeName",
                          "src": "1239:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 659,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netAssetCash",
                        "nameLocation": "1271:12:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 663,
                        "src": "1264:19:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 658,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1264:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 661,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netfCash",
                        "nameLocation": "1300:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 663,
                        "src": "1293:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 660,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1293:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1161:153:7"
                  },
                  "src": "1140:175:7"
                },
                {
                  "anonymous": false,
                  "id": 677,
                  "name": "AddRemoveLiquidity",
                  "nameLocation": "1326:18:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 676,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 665,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "1370:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1354:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 664,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1354:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 667,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1402:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1387:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 666,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1387:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 669,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1429:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1422:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "typeName": {
                          "id": 668,
                          "name": "uint40",
                          "nodeType": "ElementaryTypeName",
                          "src": "1422:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 671,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netAssetCash",
                        "nameLocation": "1454:12:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1447:19:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 670,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1447:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 673,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netfCash",
                        "nameLocation": "1483:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1476:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 672,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1476:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 675,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netLiquidityTokens",
                        "nameLocation": "1508:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 677,
                        "src": "1501:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 674,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1501:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1344:188:7"
                  },
                  "src": "1320:213:7"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 678,
                    "nodeType": "StructuredDocumentation",
                    "src": "1539:49:7",
                    "text": "@notice Emitted when reserve fees are accrued"
                  },
                  "id": 684,
                  "name": "ReserveFeeAccrued",
                  "nameLocation": "1599:17:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 683,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 680,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1632:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 684,
                        "src": "1617:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 679,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1617:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 682,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fee",
                        "nameLocation": "1651:3:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 684,
                        "src": "1644:10:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 681,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1644:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1616:39:7"
                  },
                  "src": "1593:63:7"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 685,
                    "nodeType": "StructuredDocumentation",
                    "src": "1661:59:7",
                    "text": "@notice Emitted whenever an account context has updated"
                  },
                  "id": 689,
                  "name": "AccountContextUpdate",
                  "nameLocation": "1731:20:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 688,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 687,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "1768:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 689,
                        "src": "1752:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 686,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1752:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1751:25:7"
                  },
                  "src": "1725:52:7"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 690,
                    "nodeType": "StructuredDocumentation",
                    "src": "1782:63:7",
                    "text": "@notice Emitted when an account has assets that are settled"
                  },
                  "id": 694,
                  "name": "AccountSettled",
                  "nameLocation": "1856:14:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 693,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 692,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "1887:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 694,
                        "src": "1871:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 691,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1871:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1870:25:7"
                  },
                  "src": "1850:46:7"
                },
                {
                  "anonymous": false,
                  "documentation": {
                    "id": 695,
                    "nodeType": "StructuredDocumentation",
                    "src": "1901:49:7",
                    "text": "@notice Emitted when an asset rate is settled"
                  },
                  "id": 703,
                  "name": "SetSettlementRate",
                  "nameLocation": "1961:17:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 702,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 697,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1995:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 703,
                        "src": "1979:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 696,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1979:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 699,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "2023:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 703,
                        "src": "2007:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 698,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2007:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 701,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "rate",
                        "nameLocation": "2041:4:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 703,
                        "src": "2033:12:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        "typeName": {
                          "id": 700,
                          "name": "uint128",
                          "nodeType": "ElementaryTypeName",
                          "src": "2033:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1978:68:7"
                  },
                  "src": "1955:92:7"
                },
                {
                  "anonymous": false,
                  "id": 713,
                  "name": "LiquidateLocalCurrency",
                  "nameLocation": "2088:22:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 712,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 705,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidated",
                        "nameLocation": "2136:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 713,
                        "src": "2120:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 704,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2120:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 707,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidator",
                        "nameLocation": "2172:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 713,
                        "src": "2156:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 706,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2156:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 709,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "localCurrencyId",
                        "nameLocation": "2199:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 713,
                        "src": "2192:22:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 708,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2192:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 711,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netLocalFromLiquidator",
                        "nameLocation": "2231:22:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 713,
                        "src": "2224:29:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 710,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2224:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2110:149:7"
                  },
                  "src": "2082:178:7"
                },
                {
                  "anonymous": false,
                  "id": 729,
                  "name": "LiquidateCollateralCurrency",
                  "nameLocation": "2272:27:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 728,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 715,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidated",
                        "nameLocation": "2325:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2309:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 714,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2309:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 717,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidator",
                        "nameLocation": "2361:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2345:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 716,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2345:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 719,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "localCurrencyId",
                        "nameLocation": "2388:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2381:22:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 718,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2381:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 721,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "collateralCurrencyId",
                        "nameLocation": "2420:20:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2413:27:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 720,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2413:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 723,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netLocalFromLiquidator",
                        "nameLocation": "2457:22:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2450:29:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 722,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2450:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 725,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netCollateralTransfer",
                        "nameLocation": "2496:21:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2489:28:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 724,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2489:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 727,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netNTokenTransfer",
                        "nameLocation": "2534:17:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 729,
                        "src": "2527:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 726,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2527:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2299:258:7"
                  },
                  "src": "2266:292:7"
                },
                {
                  "anonymous": false,
                  "id": 747,
                  "name": "LiquidatefCashEvent",
                  "nameLocation": "2570:19:7",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 746,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 731,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidated",
                        "nameLocation": "2615:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2599:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 730,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2599:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 733,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "liquidator",
                        "nameLocation": "2651:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2635:26:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 732,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2635:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 735,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "localCurrencyId",
                        "nameLocation": "2678:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2671:22:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 734,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2671:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 737,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fCashCurrency",
                        "nameLocation": "2710:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2703:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 736,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2703:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 739,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "netLocalFromLiquidator",
                        "nameLocation": "2740:22:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2733:29:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 738,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2733:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 742,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fCashMaturities",
                        "nameLocation": "2782:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2772:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 740,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2772:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 741,
                          "nodeType": "ArrayTypeName",
                          "src": "2772:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 745,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "fCashNotionalTransfer",
                        "nameLocation": "2816:21:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 747,
                        "src": "2807:30:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 743,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2807:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 744,
                          "nodeType": "ArrayTypeName",
                          "src": "2807:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2589:254:7"
                  },
                  "src": "2564:280:7"
                },
                {
                  "documentation": {
                    "id": 748,
                    "nodeType": "StructuredDocumentation",
                    "src": "2850:38:7",
                    "text": "UUPS Upgradeable contract calls "
                  },
                  "functionSelector": "3659cfe6",
                  "id": 753,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "upgradeTo",
                  "nameLocation": "2902:9:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 751,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 750,
                        "mutability": "mutable",
                        "name": "newImplementation",
                        "nameLocation": "2920:17:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 753,
                        "src": "2912:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 749,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2912:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2911:27:7"
                  },
                  "returnParameters": {
                    "id": 752,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2947:0:7"
                  },
                  "scope": 1036,
                  "src": "2893:55:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "4f1ef286",
                  "id": 760,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "upgradeToAndCall",
                  "nameLocation": "2962:16:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 758,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 755,
                        "mutability": "mutable",
                        "name": "newImplementation",
                        "nameLocation": "2987:17:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 760,
                        "src": "2979:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 754,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2979:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 757,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "3019:4:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 760,
                        "src": "3006:17:7",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 756,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "3006:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2978:46:7"
                  },
                  "returnParameters": {
                    "id": 759,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3041:0:7"
                  },
                  "scope": 1036,
                  "src": "2953:89:7",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "aaf10f42",
                  "id": 765,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getImplementation",
                  "nameLocation": "3056:17:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 761,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3073:2:7"
                  },
                  "returnParameters": {
                    "id": 764,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 763,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 765,
                        "src": "3099:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 762,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3099:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3098:9:7"
                  },
                  "scope": 1036,
                  "src": "3047:61:7",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8da5cb5b",
                  "id": 770,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "owner",
                  "nameLocation": "3122:5:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 766,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3127:2:7"
                  },
                  "returnParameters": {
                    "id": 769,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 768,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 770,
                        "src": "3153:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 767,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3153:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3152:9:7"
                  },
                  "scope": 1036,
                  "src": "3113:49:7",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "82463367",
                  "id": 775,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "pauseRouter",
                  "nameLocation": "3176:11:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 771,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3187:2:7"
                  },
                  "returnParameters": {
                    "id": 774,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 773,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 775,
                        "src": "3213:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 772,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3213:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3212:9:7"
                  },
                  "scope": 1036,
                  "src": "3167:55:7",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "24a3d622",
                  "id": 780,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "pauseGuardian",
                  "nameLocation": "3236:13:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 776,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3249:2:7"
                  },
                  "returnParameters": {
                    "id": 779,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 778,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 780,
                        "src": "3275:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 777,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3275:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3274:9:7"
                  },
                  "scope": 1036,
                  "src": "3227:57:7",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 781,
                    "nodeType": "StructuredDocumentation",
                    "src": "3290:32:7",
                    "text": "Initialize Markets Action "
                  },
                  "functionSelector": "d0e064c0",
                  "id": 788,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "initializeMarkets",
                  "nameLocation": "3336:17:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 786,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 783,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3361:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 788,
                        "src": "3354:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 782,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3354:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 785,
                        "mutability": "mutable",
                        "name": "isFirstInit",
                        "nameLocation": "3378:11:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 788,
                        "src": "3373:16:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 784,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3373:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3353:37:7"
                  },
                  "returnParameters": {
                    "id": 787,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3399:0:7"
                  },
                  "scope": 1036,
                  "src": "3327:73:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "bb6dd58e",
                  "id": 793,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "sweepCashIntoMarkets",
                  "nameLocation": "3415:20:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 791,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 790,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3443:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 793,
                        "src": "3436:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 789,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3436:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3435:19:7"
                  },
                  "returnParameters": {
                    "id": 792,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3463:0:7"
                  },
                  "scope": 1036,
                  "src": "3406:58:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 794,
                    "nodeType": "StructuredDocumentation",
                    "src": "3470:27:7",
                    "text": "Redeem nToken Action "
                  },
                  "functionSelector": "43ad06d8",
                  "id": 807,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenRedeem",
                  "nameLocation": "3511:12:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 803,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 796,
                        "mutability": "mutable",
                        "name": "redeemer",
                        "nameLocation": "3541:8:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 807,
                        "src": "3533:16:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 795,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3533:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 798,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3566:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 807,
                        "src": "3559:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 797,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3559:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 800,
                        "mutability": "mutable",
                        "name": "tokensToRedeem_",
                        "nameLocation": "3593:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 807,
                        "src": "3586:22:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 799,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "3586:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 802,
                        "mutability": "mutable",
                        "name": "sellTokenAssets",
                        "nameLocation": "3623:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 807,
                        "src": "3618:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 801,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "3618:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3523:121:7"
                  },
                  "returnParameters": {
                    "id": 806,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 805,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 807,
                        "src": "3663:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 804,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3663:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3662:8:7"
                  },
                  "scope": 1036,
                  "src": "3502:169:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 808,
                    "nodeType": "StructuredDocumentation",
                    "src": "3677:21:7",
                    "text": "Account Action "
                  },
                  "functionSelector": "9c979450",
                  "id": 813,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "enableBitmapCurrency",
                  "nameLocation": "3712:20:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 811,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 810,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3740:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 813,
                        "src": "3733:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 809,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3733:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3732:19:7"
                  },
                  "returnParameters": {
                    "id": 812,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3760:0:7"
                  },
                  "scope": 1036,
                  "src": "3703:58:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "f667f897",
                  "id": 818,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "settleAccount",
                  "nameLocation": "3776:13:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 816,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 815,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3798:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 818,
                        "src": "3790:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 814,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3790:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3789:17:7"
                  },
                  "returnParameters": {
                    "id": 817,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "3815:0:7"
                  },
                  "scope": 1036,
                  "src": "3767:49:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2890fb65",
                  "id": 829,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "depositUnderlyingToken",
                  "nameLocation": "3831:22:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 825,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 820,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3871:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "3863:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 819,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3863:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 822,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3895:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "3888:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 821,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3888:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 824,
                        "mutability": "mutable",
                        "name": "amountExternalPrecision",
                        "nameLocation": "3923:23:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "3915:31:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 823,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3915:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3853:99:7"
                  },
                  "returnParameters": {
                    "id": 828,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 827,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 829,
                        "src": "3979:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 826,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3979:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3978:9:7"
                  },
                  "scope": 1036,
                  "src": "3822:166:7",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b8a69455",
                  "id": 840,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "depositAssetToken",
                  "nameLocation": "4003:17:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 836,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 831,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4038:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 840,
                        "src": "4030:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 830,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4030:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 833,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "4062:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 840,
                        "src": "4055:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 832,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "4055:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 835,
                        "mutability": "mutable",
                        "name": "amountExternalPrecision",
                        "nameLocation": "4090:23:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 840,
                        "src": "4082:31:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 834,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4082:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4020:99:7"
                  },
                  "returnParameters": {
                    "id": 839,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 838,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 840,
                        "src": "4138:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 837,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4138:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4137:9:7"
                  },
                  "scope": 1036,
                  "src": "3994:153:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "02f332e8",
                  "id": 851,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "withdraw",
                  "nameLocation": "4162:8:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 847,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 842,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "4187:10:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 851,
                        "src": "4180:17:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 841,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "4180:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 844,
                        "mutability": "mutable",
                        "name": "amountInternalPrecision",
                        "nameLocation": "4214:23:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 851,
                        "src": "4207:30:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint88",
                          "typeString": "uint88"
                        },
                        "typeName": {
                          "id": 843,
                          "name": "uint88",
                          "nodeType": "ElementaryTypeName",
                          "src": "4207:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint88",
                            "typeString": "uint88"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 846,
                        "mutability": "mutable",
                        "name": "redeemToUnderlying",
                        "nameLocation": "4252:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 851,
                        "src": "4247:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 845,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "4247:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4170:106:7"
                  },
                  "returnParameters": {
                    "id": 850,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 849,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 851,
                        "src": "4295:7:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 848,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4295:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4294:9:7"
                  },
                  "scope": 1036,
                  "src": "4153:151:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 852,
                    "nodeType": "StructuredDocumentation",
                    "src": "4310:19:7",
                    "text": "Batch Action "
                  },
                  "functionSelector": "6e6a32a6",
                  "id": 861,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "batchBalanceAction",
                  "nameLocation": "4343:18:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 859,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 854,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4370:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 861,
                        "src": "4362:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 853,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4362:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 858,
                        "mutability": "mutable",
                        "name": "actions",
                        "nameLocation": "4404:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 861,
                        "src": "4379:32:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_BalanceAction_$49_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct BalanceAction[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 856,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 855,
                              "name": "BalanceAction",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 49,
                              "src": "4379:13:7"
                            },
                            "referencedDeclaration": 49,
                            "src": "4379:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BalanceAction_$49_storage_ptr",
                              "typeString": "struct BalanceAction"
                            }
                          },
                          "id": 857,
                          "nodeType": "ArrayTypeName",
                          "src": "4379:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_BalanceAction_$49_storage_$dyn_storage_ptr",
                            "typeString": "struct BalanceAction[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4361:51:7"
                  },
                  "returnParameters": {
                    "id": 860,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4429:0:7"
                  },
                  "scope": 1036,
                  "src": "4334:96:7",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "0276b64b",
                  "id": 870,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "batchBalanceAndTradeAction",
                  "nameLocation": "4445:26:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 868,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 863,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4480:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 870,
                        "src": "4472:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 862,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4472:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 867,
                        "mutability": "mutable",
                        "name": "actions",
                        "nameLocation": "4524:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 870,
                        "src": "4489:42:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_BalanceActionWithTrades_$74_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct BalanceActionWithTrades[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 865,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 864,
                              "name": "BalanceActionWithTrades",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 74,
                              "src": "4489:23:7"
                            },
                            "referencedDeclaration": 74,
                            "src": "4489:23:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BalanceActionWithTrades_$74_storage_ptr",
                              "typeString": "struct BalanceActionWithTrades"
                            }
                          },
                          "id": 866,
                          "nodeType": "ArrayTypeName",
                          "src": "4489:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_BalanceActionWithTrades_$74_storage_$dyn_storage_ptr",
                            "typeString": "struct BalanceActionWithTrades[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4471:61:7"
                  },
                  "returnParameters": {
                    "id": 869,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4565:0:7"
                  },
                  "scope": 1036,
                  "src": "4436:130:7",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "541f5270",
                  "id": 879,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "batchLend",
                  "nameLocation": "4581:9:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 877,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 872,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4599:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 879,
                        "src": "4591:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 871,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4591:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 876,
                        "mutability": "mutable",
                        "name": "actions",
                        "nameLocation": "4629:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 879,
                        "src": "4608:28:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_BatchLend_$57_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct BatchLend[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 874,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 873,
                              "name": "BatchLend",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 57,
                              "src": "4608:9:7"
                            },
                            "referencedDeclaration": 57,
                            "src": "4608:9:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BatchLend_$57_storage_ptr",
                              "typeString": "struct BatchLend"
                            }
                          },
                          "id": 875,
                          "nodeType": "ArrayTypeName",
                          "src": "4608:11:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_BatchLend_$57_storage_$dyn_storage_ptr",
                            "typeString": "struct BatchLend[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4590:47:7"
                  },
                  "returnParameters": {
                    "id": 878,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4646:0:7"
                  },
                  "scope": 1036,
                  "src": "4572:75:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "5950d8e9",
                  "id": 890,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "batchBalanceAndTradeActionWithCallback",
                  "nameLocation": "4662:38:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 888,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 881,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4718:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 890,
                        "src": "4710:15:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 880,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4710:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 885,
                        "mutability": "mutable",
                        "name": "actions",
                        "nameLocation": "4770:7:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 890,
                        "src": "4735:42:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_BalanceActionWithTrades_$74_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct BalanceActionWithTrades[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 883,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 882,
                              "name": "BalanceActionWithTrades",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 74,
                              "src": "4735:23:7"
                            },
                            "referencedDeclaration": 74,
                            "src": "4735:23:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_BalanceActionWithTrades_$74_storage_ptr",
                              "typeString": "struct BalanceActionWithTrades"
                            }
                          },
                          "id": 884,
                          "nodeType": "ArrayTypeName",
                          "src": "4735:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_BalanceActionWithTrades_$74_storage_$dyn_storage_ptr",
                            "typeString": "struct BalanceActionWithTrades[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 887,
                        "mutability": "mutable",
                        "name": "callbackData",
                        "nameLocation": "4802:12:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 890,
                        "src": "4787:27:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 886,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "4787:5:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4700:120:7"
                  },
                  "returnParameters": {
                    "id": 889,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "4837:0:7"
                  },
                  "scope": 1036,
                  "src": "4653:185:7",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "documentation": {
                    "id": 891,
                    "nodeType": "StructuredDocumentation",
                    "src": "4844:25:7",
                    "text": "Liquidation Action "
                  },
                  "functionSelector": "e3e7cb4f",
                  "id": 904,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculateLocalCurrencyLiquidation",
                  "nameLocation": "4883:33:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 898,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 893,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "4934:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 904,
                        "src": "4926:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 892,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4926:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 895,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "4967:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 904,
                        "src": "4960:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 894,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "4960:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 897,
                        "mutability": "mutable",
                        "name": "maxNTokenLiquidation",
                        "nameLocation": "4997:20:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 904,
                        "src": "4990:27:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 896,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "4990:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4916:107:7"
                  },
                  "returnParameters": {
                    "id": 903,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 900,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 904,
                        "src": "5042:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 899,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5042:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 902,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 904,
                        "src": "5050:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 901,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5050:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5041:16:7"
                  },
                  "scope": 1036,
                  "src": "4874:184:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2d10e6eb",
                  "id": 917,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "liquidateLocalCurrency",
                  "nameLocation": "5073:22:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 911,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 906,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "5113:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 917,
                        "src": "5105:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 905,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5105:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 908,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "5146:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 917,
                        "src": "5139:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 907,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "5139:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 910,
                        "mutability": "mutable",
                        "name": "maxNTokenLiquidation",
                        "nameLocation": "5176:20:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 917,
                        "src": "5169:27:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 909,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "5169:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5095:107:7"
                  },
                  "returnParameters": {
                    "id": 916,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 913,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 917,
                        "src": "5221:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 912,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5221:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 915,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 917,
                        "src": "5229:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 914,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5229:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5220:16:7"
                  },
                  "scope": 1036,
                  "src": "5064:173:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "9a600eeb",
                  "id": 936,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculateCollateralCurrencyLiquidation",
                  "nameLocation": "5252:38:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 928,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 919,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "5308:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5300:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 918,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5300:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 921,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "5341:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5334:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 920,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "5334:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 923,
                        "mutability": "mutable",
                        "name": "collateralCurrency",
                        "nameLocation": "5371:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5364:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 922,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "5364:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 925,
                        "mutability": "mutable",
                        "name": "maxCollateralLiquidation",
                        "nameLocation": "5407:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5399:32:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        "typeName": {
                          "id": 924,
                          "name": "uint128",
                          "nodeType": "ElementaryTypeName",
                          "src": "5399:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 927,
                        "mutability": "mutable",
                        "name": "maxNTokenLiquidation",
                        "nameLocation": "5448:20:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5441:27:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 926,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "5441:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5290:184:7"
                  },
                  "returnParameters": {
                    "id": 935,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 930,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5522:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 929,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5522:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 932,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5542:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 931,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5542:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 934,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 936,
                        "src": "5562:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 933,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5562:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5508:70:7"
                  },
                  "scope": 1036,
                  "src": "5243:336:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "6633af39",
                  "id": 959,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "liquidateCollateralCurrency",
                  "nameLocation": "5594:27:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 951,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 938,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "5639:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5631:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 937,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "5631:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 940,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "5672:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5665:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 939,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "5665:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 942,
                        "mutability": "mutable",
                        "name": "collateralCurrency",
                        "nameLocation": "5702:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5695:25:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 941,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "5695:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 944,
                        "mutability": "mutable",
                        "name": "maxCollateralLiquidation",
                        "nameLocation": "5738:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5730:32:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        "typeName": {
                          "id": 943,
                          "name": "uint128",
                          "nodeType": "ElementaryTypeName",
                          "src": "5730:7:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 946,
                        "mutability": "mutable",
                        "name": "maxNTokenLiquidation",
                        "nameLocation": "5779:20:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5772:27:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 945,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "5772:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 948,
                        "mutability": "mutable",
                        "name": "withdrawCollateral",
                        "nameLocation": "5814:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5809:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 947,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "5809:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 950,
                        "mutability": "mutable",
                        "name": "redeemToUnderlying",
                        "nameLocation": "5847:18:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5842:23:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 949,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "5842:4:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5621:250:7"
                  },
                  "returnParameters": {
                    "id": 958,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 953,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5919:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 952,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5919:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 955,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5939:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 954,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5939:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 957,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 959,
                        "src": "5959:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 956,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5959:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "5905:70:7"
                  },
                  "scope": 1036,
                  "src": "5585:391:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "0fb281d9",
                  "id": 977,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculatefCashLocalLiquidation",
                  "nameLocation": "5991:30:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 970,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 961,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "6039:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6031:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 960,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6031:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 963,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "6072:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6065:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 962,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6065:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 966,
                        "mutability": "mutable",
                        "name": "fCashMaturities",
                        "nameLocation": "6114:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6095:34:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 964,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6095:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 965,
                          "nodeType": "ArrayTypeName",
                          "src": "6095:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 969,
                        "mutability": "mutable",
                        "name": "maxfCashLiquidateAmounts",
                        "nameLocation": "6158:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6139:43:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 967,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6139:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 968,
                          "nodeType": "ArrayTypeName",
                          "src": "6139:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6021:167:7"
                  },
                  "returnParameters": {
                    "id": 976,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 973,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6207:15:7",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 971,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6207:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 972,
                          "nodeType": "ArrayTypeName",
                          "src": "6207:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 975,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 977,
                        "src": "6224:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 974,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6224:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6206:25:7"
                  },
                  "scope": 1036,
                  "src": "5982:250:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "7fdebbf4",
                  "id": 995,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "liquidatefCashLocal",
                  "nameLocation": "6247:19:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 988,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 979,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "6284:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6276:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 978,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6276:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 981,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "6317:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6310:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 980,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6310:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 984,
                        "mutability": "mutable",
                        "name": "fCashMaturities",
                        "nameLocation": "6359:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6340:34:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 982,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6340:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 983,
                          "nodeType": "ArrayTypeName",
                          "src": "6340:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 987,
                        "mutability": "mutable",
                        "name": "maxfCashLiquidateAmounts",
                        "nameLocation": "6403:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6384:43:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 985,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6384:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 986,
                          "nodeType": "ArrayTypeName",
                          "src": "6384:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6266:167:7"
                  },
                  "returnParameters": {
                    "id": 994,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 991,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6452:15:7",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 989,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6452:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 990,
                          "nodeType": "ArrayTypeName",
                          "src": "6452:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 993,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 995,
                        "src": "6469:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 992,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6469:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6451:25:7"
                  },
                  "scope": 1036,
                  "src": "6238:239:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "fa37e395",
                  "id": 1015,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculatefCashCrossCurrencyLiquidation",
                  "nameLocation": "6492:38:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1008,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 997,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "6548:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6540:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 996,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6540:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 999,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "6581:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6574:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 998,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6574:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1001,
                        "mutability": "mutable",
                        "name": "fCashCurrency",
                        "nameLocation": "6611:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6604:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1000,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6604:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1004,
                        "mutability": "mutable",
                        "name": "fCashMaturities",
                        "nameLocation": "6653:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6634:34:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1002,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6634:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1003,
                          "nodeType": "ArrayTypeName",
                          "src": "6634:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1007,
                        "mutability": "mutable",
                        "name": "maxfCashLiquidateAmounts",
                        "nameLocation": "6697:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6678:43:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1005,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6678:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1006,
                          "nodeType": "ArrayTypeName",
                          "src": "6678:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6530:197:7"
                  },
                  "returnParameters": {
                    "id": 1014,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1011,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6746:15:7",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1009,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6746:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1010,
                          "nodeType": "ArrayTypeName",
                          "src": "6746:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1013,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1015,
                        "src": "6763:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1012,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6763:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6745:25:7"
                  },
                  "scope": 1036,
                  "src": "6483:288:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e816469d",
                  "id": 1035,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "liquidatefCashCrossCurrency",
                  "nameLocation": "6786:27:7",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1028,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1017,
                        "mutability": "mutable",
                        "name": "liquidateAccount",
                        "nameLocation": "6831:16:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "6823:24:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1016,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "6823:7:7",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1019,
                        "mutability": "mutable",
                        "name": "localCurrency",
                        "nameLocation": "6864:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "6857:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1018,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6857:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1021,
                        "mutability": "mutable",
                        "name": "fCashCurrency",
                        "nameLocation": "6894:13:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "6887:20:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1020,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "6887:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1024,
                        "mutability": "mutable",
                        "name": "fCashMaturities",
                        "nameLocation": "6936:15:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "6917:34:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1022,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6917:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1023,
                          "nodeType": "ArrayTypeName",
                          "src": "6917:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1027,
                        "mutability": "mutable",
                        "name": "maxfCashLiquidateAmounts",
                        "nameLocation": "6980:24:7",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "6961:43:7",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1025,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "6961:7:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1026,
                          "nodeType": "ArrayTypeName",
                          "src": "6961:9:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "6813:197:7"
                  },
                  "returnParameters": {
                    "id": 1034,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1031,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "7029:15:7",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1029,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7029:6:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1030,
                          "nodeType": "ArrayTypeName",
                          "src": "7029:8:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1033,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1035,
                        "src": "7046:6:7",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1032,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7046:6:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "7028:25:7"
                  },
                  "scope": 1036,
                  "src": "6777:277:7",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 1037,
              "src": "254:6802:7",
              "usedErrors": []
            }
          ],
          "src": "41:7016:7"
        },
        "id": 7
      },
      "notional-solidity-sdk/interfaces/notional/NotionalViews.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/NotionalViews.sol",
          "exportedSymbols": {
            "AccountBalance": [
              164
            ],
            "AccountContext": [
              153
            ],
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ],
            "AssetRateAdapter": [
              362
            ],
            "AssetRateParameters": [
              215
            ],
            "AssetRateStorage": [
              196
            ],
            "AssetStorageState": [
              35
            ],
            "BalanceAction": [
              49
            ],
            "BalanceActionWithTrades": [
              74
            ],
            "BatchLend": [
              57
            ],
            "CashGroupSettings": [
              142
            ],
            "DepositActionType": [
              31
            ],
            "ETHRate": [
              207
            ],
            "ETHRateStorage": [
              190
            ],
            "MarketParameters": [
              117
            ],
            "NotionalViews": [
              1350
            ],
            "PortfolioAsset": [
              100
            ],
            "Token": [
              86
            ],
            "TokenStorage": [
              176
            ],
            "TokenType": [
              16
            ],
            "TradeActionType": [
              23
            ]
          },
          "id": 1351,
          "license": "GPL-3.0-only",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1038,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "41:23:8"
            },
            {
              "id": 1039,
              "literals": [
                "abicoder",
                "v2"
              ],
              "nodeType": "PragmaDirective",
              "src": "65:19:8"
            },
            {
              "absolutePath": "notional-solidity-sdk/contracts/lib/Types.sol",
              "file": "../../contracts/lib/Types.sol",
              "id": 1040,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1351,
              "sourceUnit": 216,
              "src": "86:39:8",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "NotionalViews",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 1350,
              "linearizedBaseContracts": [
                1350
              ],
              "name": "NotionalViews",
              "nameLocation": "137:13:8",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "04ccb84e",
                  "id": 1045,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getMaxCurrencyId",
                  "nameLocation": "166:16:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1041,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "182:2:8"
                  },
                  "returnParameters": {
                    "id": 1044,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1043,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1045,
                        "src": "208:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1042,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "208:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "207:8:8"
                  },
                  "scope": 1350,
                  "src": "157:59:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "94f1d1e4",
                  "id": 1052,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCurrencyId",
                  "nameLocation": "231:13:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1048,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1047,
                        "mutability": "mutable",
                        "name": "tokenAddress",
                        "nameLocation": "253:12:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1052,
                        "src": "245:20:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1046,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "245:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "244:22:8"
                  },
                  "returnParameters": {
                    "id": 1051,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1050,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "297:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1052,
                        "src": "290:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1049,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "290:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "289:19:8"
                  },
                  "scope": 1350,
                  "src": "222:87:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "4ebad18e",
                  "id": 1063,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCurrency",
                  "nameLocation": "324:11:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1055,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1054,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "343:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1063,
                        "src": "336:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1053,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "336:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "335:19:8"
                  },
                  "returnParameters": {
                    "id": 1062,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1058,
                        "mutability": "mutable",
                        "name": "assetToken",
                        "nameLocation": "415:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1063,
                        "src": "402:23:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$86_memory_ptr",
                          "typeString": "struct Token"
                        },
                        "typeName": {
                          "id": 1057,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1056,
                            "name": "Token",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 86,
                            "src": "402:5:8"
                          },
                          "referencedDeclaration": 86,
                          "src": "402:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$86_storage_ptr",
                            "typeString": "struct Token"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1061,
                        "mutability": "mutable",
                        "name": "underlyingToken",
                        "nameLocation": "440:15:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1063,
                        "src": "427:28:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$86_memory_ptr",
                          "typeString": "struct Token"
                        },
                        "typeName": {
                          "id": 1060,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1059,
                            "name": "Token",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 86,
                            "src": "427:5:8"
                          },
                          "referencedDeclaration": 86,
                          "src": "427:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$86_storage_ptr",
                            "typeString": "struct Token"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "401:55:8"
                  },
                  "scope": 1350,
                  "src": "315:142:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e74b6e4e",
                  "id": 1074,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getRateStorage",
                  "nameLocation": "472:14:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1066,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1065,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "494:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1074,
                        "src": "487:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1064,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "487:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "486:19:8"
                  },
                  "returnParameters": {
                    "id": 1073,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1069,
                        "mutability": "mutable",
                        "name": "ethRate",
                        "nameLocation": "575:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1074,
                        "src": "553:29:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ETHRateStorage_$190_memory_ptr",
                          "typeString": "struct ETHRateStorage"
                        },
                        "typeName": {
                          "id": 1068,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1067,
                            "name": "ETHRateStorage",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 190,
                            "src": "553:14:8"
                          },
                          "referencedDeclaration": 190,
                          "src": "553:14:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ETHRateStorage_$190_storage_ptr",
                            "typeString": "struct ETHRateStorage"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1072,
                        "mutability": "mutable",
                        "name": "assetRate",
                        "nameLocation": "608:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1074,
                        "src": "584:33:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AssetRateStorage_$196_memory_ptr",
                          "typeString": "struct AssetRateStorage"
                        },
                        "typeName": {
                          "id": 1071,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1070,
                            "name": "AssetRateStorage",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 196,
                            "src": "584:16:8"
                          },
                          "referencedDeclaration": 196,
                          "src": "584:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AssetRateStorage_$196_storage_ptr",
                            "typeString": "struct AssetRateStorage"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "552:66:8"
                  },
                  "scope": 1350,
                  "src": "463:156:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "88a73eb7",
                  "id": 1091,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCurrencyAndRates",
                  "nameLocation": "634:19:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1077,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1076,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "661:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1091,
                        "src": "654:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1075,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "654:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "653:19:8"
                  },
                  "returnParameters": {
                    "id": 1090,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1080,
                        "mutability": "mutable",
                        "name": "assetToken",
                        "nameLocation": "746:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1091,
                        "src": "733:23:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$86_memory_ptr",
                          "typeString": "struct Token"
                        },
                        "typeName": {
                          "id": 1079,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1078,
                            "name": "Token",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 86,
                            "src": "733:5:8"
                          },
                          "referencedDeclaration": 86,
                          "src": "733:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$86_storage_ptr",
                            "typeString": "struct Token"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1083,
                        "mutability": "mutable",
                        "name": "underlyingToken",
                        "nameLocation": "783:15:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1091,
                        "src": "770:28:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$86_memory_ptr",
                          "typeString": "struct Token"
                        },
                        "typeName": {
                          "id": 1082,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1081,
                            "name": "Token",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 86,
                            "src": "770:5:8"
                          },
                          "referencedDeclaration": 86,
                          "src": "770:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$86_storage_ptr",
                            "typeString": "struct Token"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1086,
                        "mutability": "mutable",
                        "name": "ethRate",
                        "nameLocation": "827:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1091,
                        "src": "812:22:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ETHRate_$207_memory_ptr",
                          "typeString": "struct ETHRate"
                        },
                        "typeName": {
                          "id": 1085,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1084,
                            "name": "ETHRate",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 207,
                            "src": "812:7:8"
                          },
                          "referencedDeclaration": 207,
                          "src": "812:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ETHRate_$207_storage_ptr",
                            "typeString": "struct ETHRate"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1089,
                        "mutability": "mutable",
                        "name": "assetRate",
                        "nameLocation": "875:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1091,
                        "src": "848:36:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AssetRateParameters_$215_memory_ptr",
                          "typeString": "struct AssetRateParameters"
                        },
                        "typeName": {
                          "id": 1088,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1087,
                            "name": "AssetRateParameters",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 215,
                            "src": "848:19:8"
                          },
                          "referencedDeclaration": 215,
                          "src": "848:19:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AssetRateParameters_$215_storage_ptr",
                            "typeString": "struct AssetRateParameters"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "719:175:8"
                  },
                  "scope": 1350,
                  "src": "625:270:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "d4ccb0ed",
                  "id": 1099,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCashGroup",
                  "nameLocation": "910:12:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1094,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1093,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "930:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1099,
                        "src": "923:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1092,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "923:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "922:19:8"
                  },
                  "returnParameters": {
                    "id": 1098,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1097,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1099,
                        "src": "965:24:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CashGroupSettings_$142_memory_ptr",
                          "typeString": "struct CashGroupSettings"
                        },
                        "typeName": {
                          "id": 1096,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1095,
                            "name": "CashGroupSettings",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 142,
                            "src": "965:17:8"
                          },
                          "referencedDeclaration": 142,
                          "src": "965:17:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CashGroupSettings_$142_storage_ptr",
                            "typeString": "struct CashGroupSettings"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "964:26:8"
                  },
                  "scope": 1350,
                  "src": "901:90:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "6987a203",
                  "id": 1110,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCashGroupAndAssetRate",
                  "nameLocation": "1006:24:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1102,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1101,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1038:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1110,
                        "src": "1031:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1100,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1031:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1030:19:8"
                  },
                  "returnParameters": {
                    "id": 1109,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1105,
                        "mutability": "mutable",
                        "name": "cashGroup",
                        "nameLocation": "1122:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1110,
                        "src": "1097:34:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CashGroupSettings_$142_memory_ptr",
                          "typeString": "struct CashGroupSettings"
                        },
                        "typeName": {
                          "id": 1104,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1103,
                            "name": "CashGroupSettings",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 142,
                            "src": "1097:17:8"
                          },
                          "referencedDeclaration": 142,
                          "src": "1097:17:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CashGroupSettings_$142_storage_ptr",
                            "typeString": "struct CashGroupSettings"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1108,
                        "mutability": "mutable",
                        "name": "assetRate",
                        "nameLocation": "1160:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1110,
                        "src": "1133:36:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AssetRateParameters_$215_memory_ptr",
                          "typeString": "struct AssetRateParameters"
                        },
                        "typeName": {
                          "id": 1107,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1106,
                            "name": "AssetRateParameters",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 215,
                            "src": "1133:19:8"
                          },
                          "referencedDeclaration": 215,
                          "src": "1133:19:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AssetRateParameters_$215_storage_ptr",
                            "typeString": "struct AssetRateParameters"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1096:74:8"
                  },
                  "scope": 1350,
                  "src": "997:174:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "65663b59",
                  "id": 1121,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getInitializationParameters",
                  "nameLocation": "1186:27:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1113,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1112,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1221:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1121,
                        "src": "1214:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1111,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1214:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1213:19:8"
                  },
                  "returnParameters": {
                    "id": 1120,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1116,
                        "mutability": "mutable",
                        "name": "annualizedAnchorRates",
                        "nameLocation": "1296:21:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1121,
                        "src": "1280:37:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1114,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1280:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1115,
                          "nodeType": "ArrayTypeName",
                          "src": "1280:8:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1119,
                        "mutability": "mutable",
                        "name": "proportions",
                        "nameLocation": "1335:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1121,
                        "src": "1319:27:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1117,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1319:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1118,
                          "nodeType": "ArrayTypeName",
                          "src": "1319:8:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1279:68:8"
                  },
                  "scope": 1350,
                  "src": "1177:171:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "97f503f5",
                  "id": 1132,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getDepositParameters",
                  "nameLocation": "1363:20:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1124,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1123,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1391:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1132,
                        "src": "1384:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1122,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1384:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1383:19:8"
                  },
                  "returnParameters": {
                    "id": 1131,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1127,
                        "mutability": "mutable",
                        "name": "depositShares",
                        "nameLocation": "1466:13:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1132,
                        "src": "1450:29:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1125,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1450:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1126,
                          "nodeType": "ArrayTypeName",
                          "src": "1450:8:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1130,
                        "mutability": "mutable",
                        "name": "leverageThresholds",
                        "nameLocation": "1497:18:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1132,
                        "src": "1481:34:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1128,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1481:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1129,
                          "nodeType": "ArrayTypeName",
                          "src": "1481:8:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1449:67:8"
                  },
                  "scope": 1350,
                  "src": "1354:163:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "974b1054",
                  "id": 1139,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenAddress",
                  "nameLocation": "1532:13:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1135,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1134,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1553:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1139,
                        "src": "1546:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1133,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1546:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1545:19:8"
                  },
                  "returnParameters": {
                    "id": 1138,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1137,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1139,
                        "src": "1588:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1136,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1588:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1587:9:8"
                  },
                  "scope": 1350,
                  "src": "1523:74:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ec41a257",
                  "id": 1144,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getNoteToken",
                  "nameLocation": "1612:12:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1140,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1624:2:8"
                  },
                  "returnParameters": {
                    "id": 1143,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1142,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1144,
                        "src": "1650:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1141,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1650:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1649:9:8"
                  },
                  "scope": 1350,
                  "src": "1603:56:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b62d268a",
                  "id": 1154,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getSettlementRate",
                  "nameLocation": "1674:17:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1149,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1146,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1699:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1154,
                        "src": "1692:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1145,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1692:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1148,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1718:8:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1154,
                        "src": "1711:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "typeName": {
                          "id": 1147,
                          "name": "uint40",
                          "nodeType": "ElementaryTypeName",
                          "src": "1711:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1691:36:8"
                  },
                  "returnParameters": {
                    "id": 1153,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1152,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1154,
                        "src": "1775:26:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AssetRateParameters_$215_memory_ptr",
                          "typeString": "struct AssetRateParameters"
                        },
                        "typeName": {
                          "id": 1151,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1150,
                            "name": "AssetRateParameters",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 215,
                            "src": "1775:19:8"
                          },
                          "referencedDeclaration": 215,
                          "src": "1775:19:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AssetRateParameters_$215_storage_ptr",
                            "typeString": "struct AssetRateParameters"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1774:28:8"
                  },
                  "scope": 1350,
                  "src": "1665:138:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "709d6c7b",
                  "id": 1166,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getMarket",
                  "nameLocation": "1818:9:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1161,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1156,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1835:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1166,
                        "src": "1828:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1155,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1828:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1158,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1855:8:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1166,
                        "src": "1847:16:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1157,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1847:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1160,
                        "mutability": "mutable",
                        "name": "settlementDate",
                        "nameLocation": "1873:14:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1166,
                        "src": "1865:22:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1159,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1865:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1827:61:8"
                  },
                  "returnParameters": {
                    "id": 1165,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1164,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1166,
                        "src": "1920:23:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_MarketParameters_$117_memory_ptr",
                          "typeString": "struct MarketParameters"
                        },
                        "typeName": {
                          "id": 1163,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1162,
                            "name": "MarketParameters",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 117,
                            "src": "1920:16:8"
                          },
                          "referencedDeclaration": 117,
                          "src": "1920:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MarketParameters_$117_storage_ptr",
                            "typeString": "struct MarketParameters"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1919:25:8"
                  },
                  "scope": 1350,
                  "src": "1809:136:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "497cf7e3",
                  "id": 1175,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getActiveMarkets",
                  "nameLocation": "1960:16:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1169,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1168,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1984:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1175,
                        "src": "1977:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1167,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1977:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1976:19:8"
                  },
                  "returnParameters": {
                    "id": 1174,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1173,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1175,
                        "src": "2019:25:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_MarketParameters_$117_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct MarketParameters[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1171,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1170,
                              "name": "MarketParameters",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 117,
                              "src": "2019:16:8"
                            },
                            "referencedDeclaration": 117,
                            "src": "2019:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MarketParameters_$117_storage_ptr",
                              "typeString": "struct MarketParameters"
                            }
                          },
                          "id": 1172,
                          "nodeType": "ArrayTypeName",
                          "src": "2019:18:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_MarketParameters_$117_storage_$dyn_storage_ptr",
                            "typeString": "struct MarketParameters[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2018:27:8"
                  },
                  "scope": 1350,
                  "src": "1951:95:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ec3c0501",
                  "id": 1186,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getActiveMarketsAtBlockTime",
                  "nameLocation": "2061:27:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1180,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1177,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2096:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1186,
                        "src": "2089:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1176,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2089:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1179,
                        "mutability": "mutable",
                        "name": "blockTime",
                        "nameLocation": "2115:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1186,
                        "src": "2108:16:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "typeName": {
                          "id": 1178,
                          "name": "uint32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2108:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2088:37:8"
                  },
                  "returnParameters": {
                    "id": 1185,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1184,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1186,
                        "src": "2173:25:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_MarketParameters_$117_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct MarketParameters[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1182,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1181,
                              "name": "MarketParameters",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 117,
                              "src": "2173:16:8"
                            },
                            "referencedDeclaration": 117,
                            "src": "2173:16:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MarketParameters_$117_storage_ptr",
                              "typeString": "struct MarketParameters"
                            }
                          },
                          "id": 1183,
                          "nodeType": "ArrayTypeName",
                          "src": "2173:18:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_MarketParameters_$117_storage_$dyn_storage_ptr",
                            "typeString": "struct MarketParameters[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2172:27:8"
                  },
                  "scope": 1350,
                  "src": "2052:148:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ca0ee700",
                  "id": 1193,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getReserveBalance",
                  "nameLocation": "2215:17:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1189,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1188,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2240:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1193,
                        "src": "2233:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1187,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2233:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2232:19:8"
                  },
                  "returnParameters": {
                    "id": 1192,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1191,
                        "mutability": "mutable",
                        "name": "reserveBalance",
                        "nameLocation": "2282:14:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1193,
                        "src": "2275:21:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1190,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2275:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2274:23:8"
                  },
                  "scope": 1350,
                  "src": "2206:92:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "aa94baa7",
                  "id": 1206,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getNTokenPortfolio",
                  "nameLocation": "2313:18:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1196,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1195,
                        "mutability": "mutable",
                        "name": "tokenAddress",
                        "nameLocation": "2340:12:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1206,
                        "src": "2332:20:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1194,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2332:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2331:22:8"
                  },
                  "returnParameters": {
                    "id": 1205,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1200,
                        "mutability": "mutable",
                        "name": "liquidityTokens",
                        "nameLocation": "2425:15:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1206,
                        "src": "2401:39:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct PortfolioAsset[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1198,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1197,
                              "name": "PortfolioAsset",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 100,
                              "src": "2401:14:8"
                            },
                            "referencedDeclaration": 100,
                            "src": "2401:14:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PortfolioAsset_$100_storage_ptr",
                              "typeString": "struct PortfolioAsset"
                            }
                          },
                          "id": 1199,
                          "nodeType": "ArrayTypeName",
                          "src": "2401:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_storage_$dyn_storage_ptr",
                            "typeString": "struct PortfolioAsset[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1204,
                        "mutability": "mutable",
                        "name": "netfCashAssets",
                        "nameLocation": "2466:14:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1206,
                        "src": "2442:38:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct PortfolioAsset[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1202,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1201,
                              "name": "PortfolioAsset",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 100,
                              "src": "2442:14:8"
                            },
                            "referencedDeclaration": 100,
                            "src": "2442:14:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PortfolioAsset_$100_storage_ptr",
                              "typeString": "struct PortfolioAsset"
                            }
                          },
                          "id": 1203,
                          "nodeType": "ArrayTypeName",
                          "src": "2442:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_storage_$dyn_storage_ptr",
                            "typeString": "struct PortfolioAsset[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2400:81:8"
                  },
                  "scope": 1350,
                  "src": "2304:178:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2d353221",
                  "id": 1227,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getNTokenAccount",
                  "nameLocation": "2497:16:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1209,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1208,
                        "mutability": "mutable",
                        "name": "tokenAddress",
                        "nameLocation": "2522:12:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2514:20:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1207,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2514:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2513:22:8"
                  },
                  "returnParameters": {
                    "id": 1226,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1211,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "2603:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2596:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1210,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "2596:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1213,
                        "mutability": "mutable",
                        "name": "totalSupply",
                        "nameLocation": "2635:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2627:19:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1212,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2627:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1215,
                        "mutability": "mutable",
                        "name": "incentiveAnnualEmissionRate",
                        "nameLocation": "2668:27:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2660:35:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1214,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2660:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1217,
                        "mutability": "mutable",
                        "name": "lastInitializedTime",
                        "nameLocation": "2717:19:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2709:27:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1216,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2709:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1219,
                        "mutability": "mutable",
                        "name": "nTokenParameters",
                        "nameLocation": "2757:16:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2750:23:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes5",
                          "typeString": "bytes5"
                        },
                        "typeName": {
                          "id": 1218,
                          "name": "bytes5",
                          "nodeType": "ElementaryTypeName",
                          "src": "2750:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes5",
                            "typeString": "bytes5"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1221,
                        "mutability": "mutable",
                        "name": "cashBalance",
                        "nameLocation": "2794:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2787:18:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1220,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2787:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1223,
                        "mutability": "mutable",
                        "name": "integralTotalSupply",
                        "nameLocation": "2827:19:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2819:27:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1222,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2819:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1225,
                        "mutability": "mutable",
                        "name": "lastSupplyChangeTime",
                        "nameLocation": "2868:20:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1227,
                        "src": "2860:28:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1224,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2860:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2582:316:8"
                  },
                  "scope": 1350,
                  "src": "2488:411:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "fbcbc0f1",
                  "id": 1243,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAccount",
                  "nameLocation": "2914:10:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1230,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1229,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "2933:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1243,
                        "src": "2925:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1228,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2925:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2924:17:8"
                  },
                  "returnParameters": {
                    "id": 1242,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1233,
                        "mutability": "mutable",
                        "name": "accountContext",
                        "nameLocation": "3024:14:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1243,
                        "src": "3002:36:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AccountContext_$153_memory_ptr",
                          "typeString": "struct AccountContext"
                        },
                        "typeName": {
                          "id": 1232,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1231,
                            "name": "AccountContext",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 153,
                            "src": "3002:14:8"
                          },
                          "referencedDeclaration": 153,
                          "src": "3002:14:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AccountContext_$153_storage_ptr",
                            "typeString": "struct AccountContext"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1237,
                        "mutability": "mutable",
                        "name": "accountBalances",
                        "nameLocation": "3076:15:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1243,
                        "src": "3052:39:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_AccountBalance_$164_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct AccountBalance[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1235,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1234,
                              "name": "AccountBalance",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 164,
                              "src": "3052:14:8"
                            },
                            "referencedDeclaration": 164,
                            "src": "3052:14:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AccountBalance_$164_storage_ptr",
                              "typeString": "struct AccountBalance"
                            }
                          },
                          "id": 1236,
                          "nodeType": "ArrayTypeName",
                          "src": "3052:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_AccountBalance_$164_storage_$dyn_storage_ptr",
                            "typeString": "struct AccountBalance[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1241,
                        "mutability": "mutable",
                        "name": "portfolio",
                        "nameLocation": "3129:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1243,
                        "src": "3105:33:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct PortfolioAsset[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1239,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1238,
                              "name": "PortfolioAsset",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 100,
                              "src": "3105:14:8"
                            },
                            "referencedDeclaration": 100,
                            "src": "3105:14:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PortfolioAsset_$100_storage_ptr",
                              "typeString": "struct PortfolioAsset"
                            }
                          },
                          "id": 1240,
                          "nodeType": "ArrayTypeName",
                          "src": "3105:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_storage_$dyn_storage_ptr",
                            "typeString": "struct PortfolioAsset[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2988:160:8"
                  },
                  "scope": 1350,
                  "src": "2905:244:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b0de2217",
                  "id": 1251,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAccountContext",
                  "nameLocation": "3164:17:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1246,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1245,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3190:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1251,
                        "src": "3182:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1244,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3182:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3181:17:8"
                  },
                  "returnParameters": {
                    "id": 1250,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1249,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1251,
                        "src": "3222:21:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AccountContext_$153_memory_ptr",
                          "typeString": "struct AccountContext"
                        },
                        "typeName": {
                          "id": 1248,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 1247,
                            "name": "AccountContext",
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 153,
                            "src": "3222:14:8"
                          },
                          "referencedDeclaration": 153,
                          "src": "3222:14:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AccountContext_$153_storage_ptr",
                            "typeString": "struct AccountContext"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3221:23:8"
                  },
                  "scope": 1350,
                  "src": "3155:90:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "fc1b1345",
                  "id": 1264,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAccountBalance",
                  "nameLocation": "3260:17:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1256,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1253,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3285:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1264,
                        "src": "3278:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1252,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3278:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1255,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3305:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1264,
                        "src": "3297:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1254,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3297:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3277:36:8"
                  },
                  "returnParameters": {
                    "id": 1263,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1258,
                        "mutability": "mutable",
                        "name": "cashBalance",
                        "nameLocation": "3381:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1264,
                        "src": "3374:18:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1257,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3374:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1260,
                        "mutability": "mutable",
                        "name": "nTokenBalance",
                        "nameLocation": "3413:13:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1264,
                        "src": "3406:20:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1259,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3406:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1262,
                        "mutability": "mutable",
                        "name": "lastClaimTime",
                        "nameLocation": "3448:13:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1264,
                        "src": "3440:21:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1261,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3440:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3360:111:8"
                  },
                  "scope": 1350,
                  "src": "3251:221:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b536ffb6",
                  "id": 1273,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAccountPortfolio",
                  "nameLocation": "3487:19:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1267,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1266,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3515:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1273,
                        "src": "3507:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1265,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3507:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3506:17:8"
                  },
                  "returnParameters": {
                    "id": 1272,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1271,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1273,
                        "src": "3547:23:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct PortfolioAsset[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1269,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1268,
                              "name": "PortfolioAsset",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 100,
                              "src": "3547:14:8"
                            },
                            "referencedDeclaration": 100,
                            "src": "3547:14:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PortfolioAsset_$100_storage_ptr",
                              "typeString": "struct PortfolioAsset"
                            }
                          },
                          "id": 1270,
                          "nodeType": "ArrayTypeName",
                          "src": "3547:16:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_storage_$dyn_storage_ptr",
                            "typeString": "struct PortfolioAsset[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3546:25:8"
                  },
                  "scope": 1350,
                  "src": "3478:94:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "911a56b0",
                  "id": 1284,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getfCashNotional",
                  "nameLocation": "3587:16:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1280,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1275,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3621:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1284,
                        "src": "3613:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1274,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3613:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1277,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3645:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1284,
                        "src": "3638:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1276,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3638:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1279,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "3673:8:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1284,
                        "src": "3665:16:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1278,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3665:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3603:84:8"
                  },
                  "returnParameters": {
                    "id": 1283,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1282,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1284,
                        "src": "3711:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1281,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3711:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3710:8:8"
                  },
                  "scope": 1350,
                  "src": "3578:141:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8ecd0660",
                  "id": 1293,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAssetsBitmap",
                  "nameLocation": "3734:15:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1289,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1286,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3758:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1293,
                        "src": "3750:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1285,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3750:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1288,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3774:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1293,
                        "src": "3767:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1287,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3767:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3749:36:8"
                  },
                  "returnParameters": {
                    "id": 1292,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1291,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1293,
                        "src": "3809:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 1290,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "3809:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3808:9:8"
                  },
                  "scope": 1350,
                  "src": "3725:93:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "c3999444",
                  "id": 1303,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getFreeCollateral",
                  "nameLocation": "3833:17:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1296,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1295,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "3859:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1303,
                        "src": "3851:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1294,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3851:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3850:17:8"
                  },
                  "returnParameters": {
                    "id": 1302,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1298,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1303,
                        "src": "3891:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1297,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3891:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1301,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1303,
                        "src": "3899:15:8",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1299,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3899:6:8",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1300,
                          "nodeType": "ArrayTypeName",
                          "src": "3899:8:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3890:25:8"
                  },
                  "scope": 1350,
                  "src": "3824:92:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "6a09a2a3",
                  "id": 1312,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "calculateNTokensToMint",
                  "nameLocation": "3931:22:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1308,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1305,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "3961:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1312,
                        "src": "3954:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1304,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "3954:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1307,
                        "mutability": "mutable",
                        "name": "amountToDepositExternalPrecision",
                        "nameLocation": "3980:32:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1312,
                        "src": "3973:39:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint88",
                          "typeString": "uint88"
                        },
                        "typeName": {
                          "id": 1306,
                          "name": "uint88",
                          "nodeType": "ElementaryTypeName",
                          "src": "3973:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint88",
                            "typeString": "uint88"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3953:60:8"
                  },
                  "returnParameters": {
                    "id": 1311,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1310,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1312,
                        "src": "4061:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1309,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4061:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4060:9:8"
                  },
                  "scope": 1350,
                  "src": "3922:148:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8355e895",
                  "id": 1325,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getfCashAmountGivenCashAmount",
                  "nameLocation": "4085:29:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1321,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1314,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "4131:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1325,
                        "src": "4124:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1313,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "4124:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1316,
                        "mutability": "mutable",
                        "name": "netCashToAccount",
                        "nameLocation": "4157:16:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1325,
                        "src": "4151:22:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int88",
                          "typeString": "int88"
                        },
                        "typeName": {
                          "id": 1315,
                          "name": "int88",
                          "nodeType": "ElementaryTypeName",
                          "src": "4151:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int88",
                            "typeString": "int88"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1318,
                        "mutability": "mutable",
                        "name": "marketIndex",
                        "nameLocation": "4191:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1325,
                        "src": "4183:19:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1317,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4183:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1320,
                        "mutability": "mutable",
                        "name": "blockTime",
                        "nameLocation": "4220:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1325,
                        "src": "4212:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1319,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4212:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4114:121:8"
                  },
                  "returnParameters": {
                    "id": 1324,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1323,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1325,
                        "src": "4259:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1322,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4259:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4258:8:8"
                  },
                  "scope": 1350,
                  "src": "4076:191:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "094614df",
                  "id": 1340,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getCashAmountGivenfCashAmount",
                  "nameLocation": "4282:29:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1334,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1327,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "4328:10:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4321:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1326,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "4321:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1329,
                        "mutability": "mutable",
                        "name": "fCashAmount",
                        "nameLocation": "4354:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4348:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int88",
                          "typeString": "int88"
                        },
                        "typeName": {
                          "id": 1328,
                          "name": "int88",
                          "nodeType": "ElementaryTypeName",
                          "src": "4348:5:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int88",
                            "typeString": "int88"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1331,
                        "mutability": "mutable",
                        "name": "marketIndex",
                        "nameLocation": "4383:11:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4375:19:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1330,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4375:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1333,
                        "mutability": "mutable",
                        "name": "blockTime",
                        "nameLocation": "4412:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4404:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1332,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4404:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4311:116:8"
                  },
                  "returnParameters": {
                    "id": 1339,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1336,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4451:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1335,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4451:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1338,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1340,
                        "src": "4459:6:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1337,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4459:6:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4450:16:8"
                  },
                  "scope": 1350,
                  "src": "4273:194:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "97d6db2e",
                  "id": 1349,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenGetClaimableIncentives",
                  "nameLocation": "4482:28:8",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1345,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1342,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "4519:7:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1349,
                        "src": "4511:15:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1341,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4511:7:8",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1344,
                        "mutability": "mutable",
                        "name": "blockTime",
                        "nameLocation": "4536:9:8",
                        "nodeType": "VariableDeclaration",
                        "scope": 1349,
                        "src": "4528:17:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1343,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4528:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4510:36:8"
                  },
                  "returnParameters": {
                    "id": 1348,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1347,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1349,
                        "src": "4594:7:8",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1346,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4594:7:8",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "4593:9:8"
                  },
                  "scope": 1350,
                  "src": "4473:130:8",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 1351,
              "src": "127:4479:8",
              "usedErrors": []
            }
          ],
          "src": "41:4566:8"
        },
        "id": 8
      },
      "notional-solidity-sdk/interfaces/notional/nERC1155Interface.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/nERC1155Interface.sol",
          "exportedSymbols": {
            "AccountBalance": [
              164
            ],
            "AccountContext": [
              153
            ],
            "AggregatorInterface": [
              263
            ],
            "AggregatorV2V3Interface": [
              272
            ],
            "AggregatorV3Interface": [
              318
            ],
            "AssetRateAdapter": [
              362
            ],
            "AssetRateParameters": [
              215
            ],
            "AssetRateStorage": [
              196
            ],
            "AssetStorageState": [
              35
            ],
            "BalanceAction": [
              49
            ],
            "BalanceActionWithTrades": [
              74
            ],
            "BatchLend": [
              57
            ],
            "CashGroupSettings": [
              142
            ],
            "DepositActionType": [
              31
            ],
            "ETHRate": [
              207
            ],
            "ETHRateStorage": [
              190
            ],
            "MarketParameters": [
              117
            ],
            "PortfolioAsset": [
              100
            ],
            "Token": [
              86
            ],
            "TokenStorage": [
              176
            ],
            "TokenType": [
              16
            ],
            "TradeActionType": [
              23
            ],
            "nERC1155Interface": [
              1512
            ]
          },
          "id": 1513,
          "license": "GPL-3.0-only",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1352,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "41:23:9"
            },
            {
              "id": 1353,
              "literals": [
                "abicoder",
                "v2"
              ],
              "nodeType": "PragmaDirective",
              "src": "65:19:9"
            },
            {
              "absolutePath": "notional-solidity-sdk/contracts/lib/Types.sol",
              "file": "../../contracts/lib/Types.sol",
              "id": 1354,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 1513,
              "sourceUnit": 216,
              "src": "86:39:9",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "nERC1155Interface",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 1512,
              "linearizedBaseContracts": [
                1512
              ],
              "name": "nERC1155Interface",
              "nameLocation": "137:17:9",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "id": 1366,
                  "name": "TransferSingle",
                  "nameLocation": "167:14:9",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1365,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1356,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "207:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1366,
                        "src": "191:24:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1355,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "191:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1358,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "241:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1366,
                        "src": "225:20:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1357,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "225:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1360,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "271:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1366,
                        "src": "255:18:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1359,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "255:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1362,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "291:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1366,
                        "src": "283:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1361,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "283:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1364,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "311:5:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1366,
                        "src": "303:13:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1363,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "303:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "181:141:9"
                  },
                  "src": "161:162:9"
                },
                {
                  "anonymous": false,
                  "id": 1380,
                  "name": "TransferBatch",
                  "nameLocation": "334:13:9",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1379,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1368,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "373:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1380,
                        "src": "357:24:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1367,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "357:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1370,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "407:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1380,
                        "src": "391:20:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1369,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "391:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1372,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "437:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1380,
                        "src": "421:18:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1371,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "421:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1375,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "ids",
                        "nameLocation": "459:3:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1380,
                        "src": "449:13:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1373,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "449:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1374,
                          "nodeType": "ArrayTypeName",
                          "src": "449:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1378,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "values",
                        "nameLocation": "482:6:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1380,
                        "src": "472:16:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1376,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "472:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1377,
                          "nodeType": "ArrayTypeName",
                          "src": "472:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "347:147:9"
                  },
                  "src": "328:167:9"
                },
                {
                  "anonymous": false,
                  "id": 1388,
                  "name": "ApprovalForAll",
                  "nameLocation": "506:14:9",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1387,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1382,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "537:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1388,
                        "src": "521:23:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1381,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "521:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1384,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "562:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1388,
                        "src": "546:24:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1383,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "546:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1386,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "577:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1388,
                        "src": "572:13:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1385,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "572:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "520:66:9"
                  },
                  "src": "500:87:9"
                },
                {
                  "anonymous": false,
                  "id": 1394,
                  "name": "URI",
                  "nameLocation": "598:3:9",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1393,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1390,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "value",
                        "nameLocation": "609:5:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1394,
                        "src": "602:12:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 1389,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "602:6:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1392,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "632:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1394,
                        "src": "616:18:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1391,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "616:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "601:34:9"
                  },
                  "src": "592:44:9"
                },
                {
                  "functionSelector": "01ffc9a7",
                  "id": 1401,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "supportsInterface",
                  "nameLocation": "651:17:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1397,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1396,
                        "mutability": "mutable",
                        "name": "interfaceId",
                        "nameLocation": "676:11:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1401,
                        "src": "669:18:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "typeName": {
                          "id": 1395,
                          "name": "bytes4",
                          "nodeType": "ElementaryTypeName",
                          "src": "669:6:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "668:20:9"
                  },
                  "returnParameters": {
                    "id": 1400,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1399,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1401,
                        "src": "712:4:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1398,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "712:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "711:6:9"
                  },
                  "scope": 1512,
                  "src": "642:76:9",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "00fdd58e",
                  "id": 1410,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "balanceOf",
                  "nameLocation": "733:9:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1406,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1403,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "751:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1410,
                        "src": "743:15:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1402,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "743:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1405,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "768:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1410,
                        "src": "760:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1404,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "760:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "742:29:9"
                  },
                  "returnParameters": {
                    "id": 1409,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1408,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1410,
                        "src": "795:7:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1407,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "795:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "794:9:9"
                  },
                  "scope": 1512,
                  "src": "724:80:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "4e1273f4",
                  "id": 1422,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "balanceOfBatch",
                  "nameLocation": "819:14:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1417,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1413,
                        "mutability": "mutable",
                        "name": "accounts",
                        "nameLocation": "853:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1422,
                        "src": "834:27:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1411,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "834:7:9",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1412,
                          "nodeType": "ArrayTypeName",
                          "src": "834:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1416,
                        "mutability": "mutable",
                        "name": "ids",
                        "nameLocation": "882:3:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1422,
                        "src": "863:22:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1414,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "863:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1415,
                          "nodeType": "ArrayTypeName",
                          "src": "863:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "833:53:9"
                  },
                  "returnParameters": {
                    "id": 1421,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1420,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1422,
                        "src": "934:16:9",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1418,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "934:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1419,
                          "nodeType": "ArrayTypeName",
                          "src": "934:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "933:18:9"
                  },
                  "scope": 1512,
                  "src": "810:142:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "0fac8f09",
                  "id": 1431,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "signedBalanceOf",
                  "nameLocation": "967:15:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1427,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1424,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "991:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1431,
                        "src": "983:15:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1423,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "983:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1426,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "1008:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1431,
                        "src": "1000:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1425,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1000:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "982:29:9"
                  },
                  "returnParameters": {
                    "id": 1430,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1429,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1431,
                        "src": "1035:6:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1428,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1035:6:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1034:8:9"
                  },
                  "scope": 1512,
                  "src": "958:85:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "81a86855",
                  "id": 1443,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "signedBalanceOfBatch",
                  "nameLocation": "1058:20:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1438,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1434,
                        "mutability": "mutable",
                        "name": "accounts",
                        "nameLocation": "1098:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1443,
                        "src": "1079:27:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1432,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1079:7:9",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1433,
                          "nodeType": "ArrayTypeName",
                          "src": "1079:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1437,
                        "mutability": "mutable",
                        "name": "ids",
                        "nameLocation": "1127:3:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1443,
                        "src": "1108:22:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1435,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1108:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1436,
                          "nodeType": "ArrayTypeName",
                          "src": "1108:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1078:53:9"
                  },
                  "returnParameters": {
                    "id": 1442,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1441,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1443,
                        "src": "1179:15:9",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                          "typeString": "int256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1439,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1179:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 1440,
                          "nodeType": "ArrayTypeName",
                          "src": "1179:8:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                            "typeString": "int256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1178:17:9"
                  },
                  "scope": 1512,
                  "src": "1049:147:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "a22cb465",
                  "id": 1450,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setApprovalForAll",
                  "nameLocation": "1211:17:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1448,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1445,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "1237:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1450,
                        "src": "1229:16:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1444,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1229:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1447,
                        "mutability": "mutable",
                        "name": "approved",
                        "nameLocation": "1252:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1450,
                        "src": "1247:13:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1446,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1247:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1228:33:9"
                  },
                  "returnParameters": {
                    "id": 1449,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1270:0:9"
                  },
                  "scope": 1512,
                  "src": "1202:69:9",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e985e9c5",
                  "id": 1459,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "isApprovedForAll",
                  "nameLocation": "1286:16:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1455,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1452,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "1311:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1459,
                        "src": "1303:15:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1451,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1303:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1454,
                        "mutability": "mutable",
                        "name": "operator",
                        "nameLocation": "1328:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1459,
                        "src": "1320:16:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1453,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1320:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1302:35:9"
                  },
                  "returnParameters": {
                    "id": 1458,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1457,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1459,
                        "src": "1361:4:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1456,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1361:4:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1360:6:9"
                  },
                  "scope": 1512,
                  "src": "1277:90:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "f242432a",
                  "id": 1472,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "safeTransferFrom",
                  "nameLocation": "1382:16:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1470,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1461,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "1416:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1472,
                        "src": "1408:12:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1460,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1408:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1463,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1438:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1472,
                        "src": "1430:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1462,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1430:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1465,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "1458:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1472,
                        "src": "1450:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1464,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1450:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1467,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "1478:6:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1472,
                        "src": "1470:14:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1466,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1470:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1469,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1509:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1472,
                        "src": "1494:19:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 1468,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1494:5:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1398:121:9"
                  },
                  "returnParameters": {
                    "id": 1471,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1536:0:9"
                  },
                  "scope": 1512,
                  "src": "1373:164:9",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2eb2c2d6",
                  "id": 1487,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "safeBatchTransferFrom",
                  "nameLocation": "1552:21:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1485,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1474,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "1591:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1487,
                        "src": "1583:12:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1473,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1583:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1476,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1613:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1487,
                        "src": "1605:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1475,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1605:7:9",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1479,
                        "mutability": "mutable",
                        "name": "ids",
                        "nameLocation": "1644:3:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1487,
                        "src": "1625:22:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1477,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1625:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1478,
                          "nodeType": "ArrayTypeName",
                          "src": "1625:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1482,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "1676:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1487,
                        "src": "1657:26:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1480,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1657:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1481,
                          "nodeType": "ArrayTypeName",
                          "src": "1657:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1484,
                        "mutability": "mutable",
                        "name": "data",
                        "nameLocation": "1708:4:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1487,
                        "src": "1693:19:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 1483,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "1693:5:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1573:145:9"
                  },
                  "returnParameters": {
                    "id": 1486,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1735:0:9"
                  },
                  "scope": 1512,
                  "src": "1543:193:9",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "3fa6b808",
                  "id": 1500,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "decodeToAssets",
                  "nameLocation": "1751:14:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1494,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1490,
                        "mutability": "mutable",
                        "name": "ids",
                        "nameLocation": "1785:3:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1500,
                        "src": "1766:22:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1488,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1766:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1489,
                          "nodeType": "ArrayTypeName",
                          "src": "1766:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1493,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "1809:7:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1500,
                        "src": "1790:26:9",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1491,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1790:7:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1492,
                          "nodeType": "ArrayTypeName",
                          "src": "1790:9:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1765:52:9"
                  },
                  "returnParameters": {
                    "id": 1499,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1498,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1500,
                        "src": "1865:23:9",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct PortfolioAsset[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 1496,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1495,
                              "name": "PortfolioAsset",
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 100,
                              "src": "1865:14:9"
                            },
                            "referencedDeclaration": 100,
                            "src": "1865:14:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PortfolioAsset_$100_storage_ptr",
                              "typeString": "struct PortfolioAsset"
                            }
                          },
                          "id": 1497,
                          "nodeType": "ArrayTypeName",
                          "src": "1865:16:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PortfolioAsset_$100_storage_$dyn_storage_ptr",
                            "typeString": "struct PortfolioAsset[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1864:25:9"
                  },
                  "scope": 1512,
                  "src": "1742:148:9",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "735a1dc8",
                  "id": 1511,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "encodeToId",
                  "nameLocation": "1905:10:9",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1507,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1502,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1932:10:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1511,
                        "src": "1925:17:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1501,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1925:6:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1504,
                        "mutability": "mutable",
                        "name": "maturity",
                        "nameLocation": "1959:8:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1511,
                        "src": "1952:15:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint40",
                          "typeString": "uint40"
                        },
                        "typeName": {
                          "id": 1503,
                          "name": "uint40",
                          "nodeType": "ElementaryTypeName",
                          "src": "1952:6:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1506,
                        "mutability": "mutable",
                        "name": "assetType",
                        "nameLocation": "1983:9:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1511,
                        "src": "1977:15:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 1505,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1977:5:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1915:83:9"
                  },
                  "returnParameters": {
                    "id": 1510,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1509,
                        "mutability": "mutable",
                        "name": "id",
                        "nameLocation": "2030:2:9",
                        "nodeType": "VariableDeclaration",
                        "scope": 1511,
                        "src": "2022:10:9",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1508,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2022:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2021:12:9"
                  },
                  "scope": 1512,
                  "src": "1896:138:9",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 1513,
              "src": "127:1909:9",
              "usedErrors": []
            }
          ],
          "src": "41:1996:9"
        },
        "id": 9
      },
      "notional-solidity-sdk/interfaces/notional/nTokenERC20.sol": {
        "ast": {
          "absolutePath": "notional-solidity-sdk/interfaces/notional/nTokenERC20.sol",
          "exportedSymbols": {
            "nTokenERC20": [
              1628
            ]
          },
          "id": 1629,
          "license": "GPL-3.0-only",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1514,
              "literals": [
                "solidity",
                "^",
                "0.8",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "41:23:10"
            },
            {
              "id": 1515,
              "literals": [
                "abicoder",
                "v2"
              ],
              "nodeType": "PragmaDirective",
              "src": "65:19:10"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "nTokenERC20",
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 1628,
              "linearizedBaseContracts": [
                1628
              ],
              "name": "nTokenERC20",
              "nameLocation": "96:11:10",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "id": 1523,
                  "name": "Transfer",
                  "nameLocation": "120:8:10",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1522,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1517,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "145:4:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1523,
                        "src": "129:20:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1516,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "129:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1519,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "167:2:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1523,
                        "src": "151:18:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1518,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "151:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1521,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "179:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1523,
                        "src": "171:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1520,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "171:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "128:58:10"
                  },
                  "src": "114:73:10"
                },
                {
                  "anonymous": false,
                  "id": 1531,
                  "name": "Approval",
                  "nameLocation": "199:8:10",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 1530,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1525,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "owner",
                        "nameLocation": "224:5:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1531,
                        "src": "208:21:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1524,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "208:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1527,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "247:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1531,
                        "src": "231:23:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1526,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "231:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1529,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "264:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1531,
                        "src": "256:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1528,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "256:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "207:64:10"
                  },
                  "src": "193:79:10"
                },
                {
                  "functionSelector": "6a96e86f",
                  "id": 1538,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTotalSupply",
                  "nameLocation": "287:17:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1534,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1533,
                        "mutability": "mutable",
                        "name": "nTokenAddress",
                        "nameLocation": "313:13:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1538,
                        "src": "305:21:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1532,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "305:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "304:23:10"
                  },
                  "returnParameters": {
                    "id": 1537,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1536,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1538,
                        "src": "351:7:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1535,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "351:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "350:9:10"
                  },
                  "scope": 1628,
                  "src": "278:82:10",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "7db31ab9",
                  "id": 1549,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTransferAllowance",
                  "nameLocation": "375:23:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1545,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1540,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "415:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1549,
                        "src": "408:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1539,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "408:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1542,
                        "mutability": "mutable",
                        "name": "owner",
                        "nameLocation": "443:5:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1549,
                        "src": "435:13:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1541,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "435:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1544,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "466:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1549,
                        "src": "458:15:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1543,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "458:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "398:81:10"
                  },
                  "returnParameters": {
                    "id": 1548,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1547,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1549,
                        "src": "503:7:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1546,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "503:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "502:9:10"
                  },
                  "scope": 1628,
                  "src": "366:146:10",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "a78dbfff",
                  "id": 1558,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenBalanceOf",
                  "nameLocation": "527:15:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1554,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1551,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "550:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1558,
                        "src": "543:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1550,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "543:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1553,
                        "mutability": "mutable",
                        "name": "account",
                        "nameLocation": "570:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1558,
                        "src": "562:15:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1552,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "562:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "542:36:10"
                  },
                  "returnParameters": {
                    "id": 1557,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1556,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1558,
                        "src": "602:7:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1555,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "602:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "601:9:10"
                  },
                  "scope": 1628,
                  "src": "518:93:10",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "309c00a6",
                  "id": 1571,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTransferApprove",
                  "nameLocation": "626:21:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1567,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1560,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "664:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1571,
                        "src": "657:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1559,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "657:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1562,
                        "mutability": "mutable",
                        "name": "owner",
                        "nameLocation": "692:5:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1571,
                        "src": "684:13:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1561,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "684:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1564,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "715:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1571,
                        "src": "707:15:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1563,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "707:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1566,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "740:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1571,
                        "src": "732:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1565,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "732:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "647:105:10"
                  },
                  "returnParameters": {
                    "id": 1570,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1569,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1571,
                        "src": "771:4:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1568,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "771:4:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "770:6:10"
                  },
                  "scope": 1628,
                  "src": "617:160:10",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "18ae40d7",
                  "id": 1584,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTransfer",
                  "nameLocation": "792:14:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1580,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1573,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "823:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1584,
                        "src": "816:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1572,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "816:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1575,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "851:4:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1584,
                        "src": "843:12:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1574,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "843:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1577,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "873:2:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1584,
                        "src": "865:10:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1576,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "865:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1579,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "893:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1584,
                        "src": "885:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1578,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "885:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "806:99:10"
                  },
                  "returnParameters": {
                    "id": 1583,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1582,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1584,
                        "src": "924:4:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1581,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "924:4:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "923:6:10"
                  },
                  "scope": 1628,
                  "src": "783:147:10",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "884a7092",
                  "id": 1599,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTransferFrom",
                  "nameLocation": "945:18:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1595,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1586,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "980:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "973:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1585,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "973:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1588,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "1008:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "1000:15:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1587,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1000:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1590,
                        "mutability": "mutable",
                        "name": "from",
                        "nameLocation": "1033:4:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "1025:12:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1589,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1025:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1592,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1055:2:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "1047:10:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1591,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1047:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1594,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "1075:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "1067:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1593,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1067:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "963:124:10"
                  },
                  "returnParameters": {
                    "id": 1598,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1597,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1599,
                        "src": "1106:4:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1596,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1106:4:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1105:6:10"
                  },
                  "scope": 1628,
                  "src": "936:176:10",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2e0ecba8",
                  "id": 1608,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenTransferApproveAll",
                  "nameLocation": "1127:24:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1604,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1601,
                        "mutability": "mutable",
                        "name": "spender",
                        "nameLocation": "1160:7:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1608,
                        "src": "1152:15:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 1600,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1152:7:10",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 1603,
                        "mutability": "mutable",
                        "name": "amount",
                        "nameLocation": "1177:6:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1608,
                        "src": "1169:14:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1602,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1169:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1151:33:10"
                  },
                  "returnParameters": {
                    "id": 1607,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1606,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1608,
                        "src": "1203:4:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 1605,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1203:4:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1202:6:10"
                  },
                  "scope": 1628,
                  "src": "1118:91:10",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "daca07a6",
                  "id": 1613,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenClaimIncentives",
                  "nameLocation": "1224:21:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1609,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1245:2:10"
                  },
                  "returnParameters": {
                    "id": 1612,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1611,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1613,
                        "src": "1266:7:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1610,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1266:7:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1265:9:10"
                  },
                  "scope": 1628,
                  "src": "1215:60:10",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "1a05bce1",
                  "id": 1620,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenPresentValueAssetDenominated",
                  "nameLocation": "1290:34:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1616,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1615,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1332:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1620,
                        "src": "1325:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1614,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1325:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1324:19:10"
                  },
                  "returnParameters": {
                    "id": 1619,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1618,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1620,
                        "src": "1367:6:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1617,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1367:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1366:8:10"
                  },
                  "scope": 1628,
                  "src": "1281:94:10",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "3b2987b3",
                  "id": 1627,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "nTokenPresentValueUnderlyingDenominated",
                  "nameLocation": "1390:39:10",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 1623,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1622,
                        "mutability": "mutable",
                        "name": "currencyId",
                        "nameLocation": "1437:10:10",
                        "nodeType": "VariableDeclaration",
                        "scope": 1627,
                        "src": "1430:17:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "typeName": {
                          "id": 1621,
                          "name": "uint16",
                          "nodeType": "ElementaryTypeName",
                          "src": "1430:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1429:19:10"
                  },
                  "returnParameters": {
                    "id": 1626,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 1625,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 1627,
                        "src": "1496:6:10",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 1624,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1496:6:10",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1495:8:10"
                  },
                  "scope": 1628,
                  "src": "1381:123:10",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 1629,
              "src": "86:1420:10",
              "usedErrors": []
            }
          ],
          "src": "41:1466:10"
        },
        "id": 10
      }
    }
  }
}
