{
  "generator": "cannon cli 2.22.0",
  "timestamp": 1749088542,
  "def": {
    "setting": {
      "minimum_liquidity_ratio": {
        "defaultValue": "1100000000000000000"
      },
      "account_timeout_withdraw": {
        "defaultValue": "86400"
      },
      "snx_package": {
        "defaultValue": "synthetix:3.12.2"
      },
      "owner": {
        "defaultValue": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
      },
      "target_preset": {
        "defaultValue": "main"
      },
      "salt": {
        "defaultValue": "snaxtest"
      },
      "bundleSalt": {
        "defaultValue": "snax"
      },
      "deployer": {
        "defaultValue": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
      },
      "wsteth_aggregator_address": {
        "defaultValue": "0xaaabb530434B0EeAAc9A42E25dbC6A22D7bE218E"
      },
      "wsteth_chainlink_staleness_tolerance": {
        "defaultValue": "86400"
      },
      "susde_aggregator_address": {
        "defaultValue": "0x6f7be09227d98Ce1Df812d5Bc745c0c775507E92"
      },
      "susde_chainlink_staleness_tolerance": {
        "defaultValue": "86400"
      },
      "snx_aggregator_address": {
        "defaultValue": "0xc0F82A46033b8BdBA4Bb0B0e28Bc2006F64355bC"
      },
      "snx_chainlink_staleness_tolerance": {
        "defaultValue": "86400"
      },
      "eth_aggregator_address": {
        "defaultValue": "0x694AA1769357215DE4FAC081bf1f309aDC325306",
        "description": "https://docs.chain.link/data-feeds/price-feeds/addresses/?network=ethereum&page=1"
      },
      "snx_address": {
        "defaultValue": "<%= imports.legacyMarket.imports.v2x.contracts.ProxySynthetix.address %>"
      },
      "snx_liquidation_reward": {
        "defaultValue": "50000000000000000000"
      },
      "weth_address": {
        "defaultValue": "<%= weth_mock_collateral.MintableToken.address %>"
      },
      "legacy_market_package": {
        "defaultValue": "synthetix-legacy-market:3.12.1"
      },
      "spot_market_package": {
        "defaultValue": "synthetix-spot-market:3.12.2"
      },
      "usde_aggregator_address": {
        "defaultValue": "0x55ec7c3ed0d7CB5DF4d3d8bfEd2ecaf28b4638fb"
      },
      "usde_chainlink_staleness_tolerance": {
        "defaultValue": "86400"
      },
      "pythPriceVerificationAddress": {},
      "pythFeedUrl": {
        "defaultValue": "https://api.synthetix.io/pyth-mainnet/api/get_vaa_ccip?data={data}"
      },
      "settlementReward": {
        "defaultValue": "1"
      },
      "settlementMinimumUsdExchangeAmount": {
        "defaultValue": "0.000001"
      },
      "settlementMaxRoundingLoss": {
        "defaultValue": "0.000001"
      },
      "commitmentPriceDelay": {
        "defaultValue": "2"
      },
      "bigCapSettlementDelay": {
        "defaultValue": "2"
      },
      "bigCapSettlementWindowDuration": {
        "defaultValue": "60"
      },
      "bigCapDefaultStalenessTolerance": {
        "defaultValue": "3600"
      },
      "bigCapStrictStalenessTolerance": {
        "defaultValue": "60"
      },
      "spotStrictStalenessTolerance": {
        "defaultValue": "60"
      },
      "sc_pool_id": {
        "defaultValue": "1"
      },
      "pool_owner": {
        "defaultValue": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
      },
      "ccip_router": {
        "defaultValue": "0xd0daae2231e9cb96b94c8512223533293c3693bf"
      },
      "ccip_token_pool": {
        "defaultValue": "0x9b65749b38278060c5787cce0391ac7f1094c8e8"
      },
      "v2x_package": {
        "defaultValue": "synthetix:2.101.2"
      },
      "oracle_manager_package": {
        "defaultValue": "oracle-manager:3.10.1"
      },
      "susde_package": {
        "defaultValue": "fake-susde-token",
        "depends": [
          "clone.susde_deploy"
        ]
      },
      "wsteth_package": {
        "defaultValue": "fake-wsteth-token",
        "depends": [
          "clone.wsteth_deploy"
        ]
      },
      "weth_max_pool_collateral": {
        "defaultValue": "<%= parseEther(String(20_000)) %>"
      },
      "weth_liquidation_reward": {
        "defaultValue": "10000000000000000000"
      },
      "pdao": {
        "defaultValue": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
      },
      "synthUsdeAsyncFixedFee": {
        "defaultValue": "0"
      },
      "synthUsdeSkewScale": {
        "defaultValue": "0"
      },
      "pythUsdeFeedId": {
        "defaultValue": "0x6ec879b1e9963de5ee97e9c8710b742d6228252a5e2ca12d4ae81d7fe5ee8c5d"
      },
      "pyth_price_verification_address": {
        "defaultValue": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21"
      },
      "synth_usde_max_market_collateral": {
        "defaultValue": "<%= parseEther('100000000') %>"
      },
      "bfp_market_package": {
        "defaultValue": "synthetix-bfp-market:3.8.1"
      },
      "snxusd_max_collateral": {
        "defaultValue": "<%= parseEther(String(1_000_000)) %>"
      },
      "weth_max_collateral": {
        "defaultValue": "<%= parseEther(String(10_000)) %>"
      },
      "snxusd_skew_scale": {
        "defaultValue": "0"
      },
      "weth_skew_scale": {
        "defaultValue": "<%= parseEther(String(1_000_000)) %>"
      },
      "maker_fee": {
        "defaultValue": "<%= parseEther('0.0001') %>"
      },
      "taker_fee": {
        "defaultValue": "<%= parseEther('0.0006') %>"
      },
      "max_market_size": {
        "defaultValue": "<%= parseEther(String(1000)) %>"
      },
      "max_funding_velocity": {
        "defaultValue": "<%= parseEther('3') %>"
      },
      "skew_scale": {
        "defaultValue": "<%= parseEther(String(1_000_000)) %>"
      },
      "funding_velocity_clamp": {
        "defaultValue": "<%= parseEther('0.0003') %>"
      },
      "min_credit_percent": {
        "defaultValue": "<%= parseEther('0.25') %>"
      },
      "min_margin_usd": {
        "defaultValue": "<%= parseEther('1000') %>"
      },
      "min_margin_ratio": {
        "defaultValue": "<%= parseEther('0.02') %>"
      },
      "incremental_margin_scalar": {
        "defaultValue": "<%= parseEther('1') %>"
      },
      "maintenance_margin_scalar": {
        "defaultValue": "<%= parseEther('0.3') %>"
      },
      "max_initial_margin_ratio": {
        "defaultValue": "<%= parseEther('0.9') %>"
      },
      "liquidation_reward_percent": {
        "defaultValue": "<%= parseEther('0.0005') %>"
      },
      "liquidation_limit_scalar": {
        "defaultValue": "<%= parseEther('1') %>"
      },
      "liquidation_max_pd": {
        "defaultValue": "<%= parseEther('0.0012') %>"
      },
      "liquidation_window_duration": {
        "defaultValue": "90"
      },
      "min_keeper_fee_usd": {
        "defaultValue": "<%= parseEther('10') %>"
      },
      "max_keeper_fee_usd": {
        "defaultValue": "<%= parseEther('100') %>"
      },
      "snx_v4_onchain": {
        "defaultValue": "synthetix-v4-onchain:0.1.6"
      }
    },
    "invoke": {
      "setMinimumLiquidityRatio": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setMinLiquidityRatio(uint256)",
        "args": [
          "<%= settings.minimum_liquidity_ratio %>"
        ]
      },
      "setAccountTimeoutWithdraw": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= formatBytes32String('accountTimeoutWithdraw') %>",
          "<%= hexZeroPad(hexlify(parseInt(settings.account_timeout_withdraw)), 32) %>"
        ],
        "depends": [
          "provision.system",
          "setting.account_timeout_withdraw"
        ]
      },
      "setSupportedCrossChainNetworks": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setSupportedCrossChainNetworks",
        "args": [
          [
            "11155111",
            "420",
            "421613",
            "80001",
            "84531"
          ],
          [
            "16015286601757825753",
            "2664363617261496610",
            "6101244977088475029",
            "12532609583862916517",
            "5790810961207155433"
          ]
        ]
      },
      "permitCreatePool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addToFeatureFlagAllowlist",
        "args": [
          "<%= formatBytes32String('createPool') %>",
          "<%= settings.deployer %>"
        ]
      },
      "registerWstethOracleNode": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          3,
          "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.wsteth_aggregator_address, 0, 8]) %>",
          []
        ],
        "extra": {
          "wsteth_oracle_id_raw": {
            "event": "NodeRegistered",
            "arg": 0
          }
        },
        "depends": [
          "provision.system",
          "setting.wsteth_aggregator_address"
        ]
      },
      "registerWstethWithStaleness": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          7,
          "<%= defaultAbiCoder.encode(['uint256'], [settings.wsteth_chainlink_staleness_tolerance]) %>",
          [
            "<%= extras.wsteth_oracle_id_raw %>"
          ]
        ],
        "extra": {
          "wsteth_oracle_id": {
            "event": "NodeRegistered",
            "arg": 0
          }
        }
      },
      "registerSusdeOracleManagerNode": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          3,
          "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.susde_aggregator_address, 0, 8]) %>",
          []
        ],
        "extra": {
          "susde_oracle_id_raw": {
            "event": "NodeRegistered",
            "arg": 0
          }
        },
        "depends": [
          "provision.system",
          "setting.susde_aggregator_address"
        ]
      },
      "registerSusdeWithStaleness": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          7,
          "<%= defaultAbiCoder.encode(['uint256'], [settings.susde_chainlink_staleness_tolerance]) %>",
          [
            "<%= extras.susde_oracle_id_raw %>"
          ]
        ],
        "extra": {
          "susde_oracle_id": {
            "event": "NodeRegistered",
            "arg": 0
          }
        }
      },
      "registerSnxOracleManagerNode": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          3,
          "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.snx_aggregator_address, 0, 8]) %>",
          []
        ],
        "extra": {
          "snx_oracle_id_raw": {
            "event": "NodeRegistered",
            "arg": 0
          }
        },
        "depends": [
          "provision.system",
          "setting.snx_aggregator_address"
        ]
      },
      "registerSnxWithStaleness": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          7,
          "<%= defaultAbiCoder.encode(['uint256'], [settings.snx_chainlink_staleness_tolerance]) %>",
          [
            "<%= extras.snx_oracle_id_raw %>"
          ]
        ],
        "extra": {
          "snx_oracle_id": {
            "event": "NodeRegistered",
            "arg": 0
          }
        }
      },
      "registerEthOracleNode": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          3,
          "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.eth_aggregator_address, 0, 8]) %>",
          []
        ],
        "extra": {
          "eth_oracle_id": {
            "event": "NodeRegistered",
            "arg": 0
          }
        },
        "depends": [
          "provision.system",
          "setting.eth_aggregator_address"
        ]
      },
      "configureWstethCollateral": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureCollateral",
        "args": [
          {
            "tokenAddress": "<%= imports.wsteth.contracts.Token.address %>",
            "oracleNodeId": "<%= extras.wsteth_oracle_id %>",
            "issuanceRatioD18": "<%= parseEther('1.5') %>",
            "liquidationRatioD18": "<%= parseEther('1.1') %>",
            "liquidationRewardD18": "<%= parseEther('0.01') %>",
            "minDelegationD18": "<%= parseEther('0.01') %>",
            "depositingEnabled": true
          }
        ]
      },
      "configureSusdeCollateral": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureCollateral",
        "args": [
          {
            "tokenAddress": "<%= imports.susde.contracts.Token.address %>",
            "oracleNodeId": "<%= extras.susde_oracle_id %>",
            "issuanceRatioD18": "<%= parseEther('1.1') %>",
            "liquidationRatioD18": "<%= parseEther('1.01') %>",
            "liquidationRewardD18": "<%= parseEther('1') %>",
            "minDelegationD18": "<%= parseEther('1') %>",
            "depositingEnabled": true
          }
        ]
      },
      "configureSnxCollateral": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureCollateral",
        "args": [
          {
            "tokenAddress": "<%= settings.snx_address %>",
            "oracleNodeId": "<%= extras.snx_oracle_id %>",
            "issuanceRatioD18": "<%= parseEther('5') %>",
            "liquidationRatioD18": "<%= parseEther('1.01') %>",
            "liquidationRewardD18": "0",
            "minDelegationD18": "1",
            "depositingEnabled": true
          }
        ]
      },
      "configureWethCollateral": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureCollateral",
        "args": [
          {
            "tokenAddress": "<%= settings.weth_address %>",
            "oracleNodeId": "<%= extras.eth_oracle_id %>",
            "issuanceRatioD18": "<%= parseEther('2') %>",
            "liquidationRatioD18": "<%= parseEther('1.1') %>",
            "liquidationRewardD18": "<%= parseEther('0.01') %>",
            "minDelegationD18": "<%= parseEther('0.01') %>",
            "depositingEnabled": true
          }
        ]
      },
      "registerUsdeOracleManagerNode": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          3,
          "<%= defaultAbiCoder.encode(['address', 'uint256', 'uint8'], [settings.usde_aggregator_address, 0, 8]) %>",
          []
        ],
        "extra": {
          "usde_oracle_id_raw": {
            "event": "NodeRegistered",
            "arg": 0
          }
        },
        "depends": [
          "provision.system",
          "setting.usde_aggregator_address"
        ]
      },
      "registerUsdeWithStaleness": {
        "target": [
          "system.oracle_manager.Proxy"
        ],
        "func": "registerNode",
        "args": [
          7,
          "<%= defaultAbiCoder.encode(['uint256'], [settings.usde_chainlink_staleness_tolerance]) %>",
          [
            "<%= extras.usde_oracle_id_raw %>"
          ]
        ],
        "extra": {
          "usde_oracle_id": {
            "event": "NodeRegistered",
            "arg": 0
          }
        }
      },
      "createUsdeSynth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "createSynth",
        "args": [
          "Synthetic Ethena USD",
          "snxUSDe",
          "<%= settings.owner %>"
        ],
        "extra": {
          "synth_usde_market_id": {
            "event": "SynthRegistered",
            "arg": 0
          },
          "synth_usde_token_address": {
            "event": "SynthRegistered",
            "arg": 1
          }
        }
      },
      "setSynthPriceUsde": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_usde_market_id %>"
          ]
        },
        "func": "updatePriceData",
        "args": [
          "<%= extras.synth_usde_market_id %>",
          "<%= extras.usde_oracle_id %>",
          "<%= extras.usde_oracle_id %>",
          "<%= settings.spotStrictStalenessTolerance %>"
        ],
        "depends": [
          "setting.settlementMaxRoundingLoss",
          "setting.settlementMinimumUsdExchangeAmount"
        ]
      },
      "setSynthAsyncFixedFeeUsde": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_usde_market_id %>"
          ]
        },
        "func": "setAsyncFixedFee",
        "args": [
          "<%= extras.synth_usde_market_id %>",
          "<%= parseEther(settings.synthUsdeAsyncFixedFee) %>"
        ],
        "depends": [
          "invoke.createUsdeSynth",
          "provision.spotFactory",
          "setting.synthUsdeAsyncFixedFee"
        ]
      },
      "setSynthSkewScaleUsde": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_usde_market_id %>"
          ]
        },
        "func": "setMarketSkewScale",
        "args": [
          "<%= extras.synth_usde_market_id %>",
          "<%= parseEther(settings.synthUsdeSkewScale) %>"
        ],
        "depends": [
          "invoke.createUsdeSynth",
          "provision.spotFactory",
          "setting.synthUsdeSkewScale"
        ]
      },
      "createScPool": {
        "target": [
          "system.CoreProxy"
        ],
        "func": "createPool",
        "args": [
          "<%= settings.sc_pool_id %>",
          "<%= settings.pool_owner %>"
        ],
        "depends": [
          "invoke.permitCreatePool"
        ]
      },
      "setScPoolName": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "getPoolOwner",
          "args": [
            "<%= settings.sc_pool_id %>"
          ]
        },
        "func": "setPoolName",
        "args": [
          "<%= settings.sc_pool_id %>",
          "Spartan Council Pool"
        ],
        "depends": [
          "invoke.createScPool"
        ]
      },
      "setPreferredPool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setPreferredPool",
        "args": [
          "<%= settings.sc_pool_id %>"
        ],
        "depends": [
          "invoke.createScPool"
        ]
      },
      "allowAllCreatePool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setFeatureFlagAllowAll",
        "args": [
          "<%= formatBytes32String('createPool') %>",
          true
        ]
      },
      "allowAllRegisterMarket": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setFeatureFlagAllowAll",
        "args": [
          "<%= formatBytes32String('registerMarket') %>",
          true
        ]
      },
      "configureChainlinkCrossChain": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureChainlinkCrossChain",
        "args": [
          "<%= settings.ccip_router %>",
          "<%= settings.ccip_token_pool %>"
        ]
      },
      "allowAllTransferCrossChain": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setFeatureFlagAllowAll",
        "args": [
          "<%= formatBytes32String('transferCrossChain') %>",
          true
        ]
      },
      "SpotMarketProxy_setWrapper_usde": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_usde_market_id %>"
          ]
        },
        "func": "setWrapper",
        "args": [
          "<%= extras.synth_usde_market_id %>",
          "<%= imports.usde.contracts.Token.address %>",
          "<%= settings.synth_usde_max_market_collateral %>"
        ]
      },
      "BfpMarketProxy_setPyth": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setPyth",
        "args": [
          "<%= settings.pyth_price_verification_address %>"
        ]
      },
      "BfpMarketProxy_createRewardDistributor_weth": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "createRewardDistributor",
        "extra": {
          "weth_rewards_distributor": {
            "event": "RewardDistributorCreated",
            "arg": 0
          }
        },
        "args": [
          {
            "poolId": "<%= settings.sc_pool_id %>",
            "name": "weth RewardDistributor",
            "token": "<%= settings.weth_address %>",
            "collateralTypes": [
              "<%= settings.snx_address %>",
              "<%= imports.wsteth.contracts.Token.address %>",
              "<%= imports.susde.contracts.Token.address %>"
            ]
          }
        ]
      },
      "BfpMarketProxy_setMarketConfiguration": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setMarketConfiguration",
        "args": [
          {
            "pythPublishTimeMin": 12,
            "pythPublishTimeMax": 60,
            "minOrderAge": 12,
            "maxOrderAge": 60,
            "minKeeperFeeUsd": "<%= settings.min_keeper_fee_usd %>",
            "maxKeeperFeeUsd": "<%= settings.max_keeper_fee_usd %>",
            "keeperProfitMarginUsd": "<%= settings.keeper_profit_margin_usd %>",
            "keeperProfitMarginPercent": "<%= settings.keeper_profit_margin_percent %>",
            "keeperSettlementGasUnits": 1200000,
            "keeperCancellationGasUnits": 600000,
            "keeperFlagGasUnits": 1200000,
            "keeperLiquidateMarginGasUnits": 1200000,
            "keeperLiquidationGasUnits": 1200000,
            "keeperLiquidationEndorsed": "<%= settings.deployer %>",
            "collateralDiscountScalar": 1,
            "minCollateralDiscount": "<%= settings.min_collateral_discount %>",
            "maxCollateralDiscount": "<%= parseEther('0.1') %>",
            "utilizationBreakpointPercent": "<%= parseEther('0.025') %>",
            "lowUtilizationSlopePercent": "<%= settings.low_utilization_slope_percent  %>",
            "highUtilizationSlopePercent": "<%= settings.high_utilization_slope_percent %>"
          }
        ]
      },
      "BfpMarketProxy_setEthOracleNodeId": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setEthOracleNodeId",
        "args": [
          "<%= settings.eth_oracle_id %>"
        ]
      },
      "BfpMarketProxy_createMarket_eth": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "createMarket",
        "args": [
          {
            "name": "<%= formatBytes32String('ETHPERP') %>",
            "minDelegateTime": 86400
          }
        ],
        "extra": {
          "eth_market_id": {
            "event": "MarketCreated",
            "arg": 0
          }
        }
      },
      "BfpMarketProxy_setMarketConfigurationById_eth": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setMarketConfigurationById",
        "args": [
          {
            "oracleNodeId": "<%= settings.eth_oracle_id %>",
            "pythPriceFeedId": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
            "marketId": "<%= settings.eth_market_id %>",
            "makerFee": "<%= settings.maker_fee %>",
            "takerFee": "<%= settings.taker_fee %>",
            "maxMarketSize": "<%= settings.max_market_size %>",
            "maxFundingVelocity": "<%= settings.max_funding_velocity %>",
            "skewScale": "<%= settings.skew_scale %>",
            "fundingVelocityClamp": "<%= settings.funding_velocity_clamp %>",
            "minCreditPercent": "<%= settings.min_credit_percent %>",
            "minMarginUsd": "<%= settings.min_margin_usd %>",
            "minMarginRatio": "<%= settings.min_margin_ratio %>",
            "incrementalMarginScalar": "<%= settings.incremental_margin_scalar %>",
            "maintenanceMarginScalar": "<%= settings.maintenance_margin_scalar %>",
            "maxInitialMarginRatio": "<%= settings.max_initial_margin_ratio %>",
            "liquidationRewardPercent": "<%= settings.liquidation_reward_percent %>",
            "liquidationLimitScalar": "<%= settings.liquidation_limit_scalar %>",
            "liquidationWindowDuration": "<%= settings.liquidation_window_duration %>",
            "liquidationMaxPd": "<%= settings.liquidation_max_pd %>"
          }
        ]
      },
      "BfpMarketProxy_setMarginCollateralConfiguration": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setMarginCollateralConfiguration",
        "args": [
          [
            "<%= system.USDProxy.address %>",
            "<%= settings.weth_address %>"
          ],
          [
            "<%= imports.system.settings.const_one_oracle_id %>",
            "<%= settings.eth_oracle_id %>"
          ],
          [
            "<%= settings.snxusd_max_collateral %>",
            "<%= settings.weth_max_collateral %>"
          ],
          [
            "<%= settings.snxusd_skew_scale %>",
            "<%= settings.weth_skew_scale %>"
          ],
          [
            "0x0000000000000000000000000000000000000000",
            "<%= settings.weth_rewards_distributor %>"
          ]
        ]
      },
      "BfpMarketProxy_enableAllFeatures": {
        "target": [
          "bfp_market_factory.BfpMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "enableAllFeatures"
      },
      "CoreProxy_configureMaximumMarketCollateral_weth": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "configureMaximumMarketCollateral",
        "args": [
          "<%= settings.eth_market_id %>",
          "<%= settings.weth_address %>",
          "<%= settings.weth_max_pool_collateral %>"
        ]
      },
      "CoreProxy_registerRewardsDistributor_weth": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "getPoolOwner",
          "args": [
            "<%= settings.sc_pool_id %>"
          ]
        },
        "func": "registerRewardsDistributor",
        "args": [
          "<%= settings.sc_pool_id %>",
          "<%= settings.weth_address %>",
          "<%= settings.weth_rewards_distributor %>"
        ]
      }
    },
    "clone": {
      "oracle_manager": {
        "source": "<%= settings.oracle_manager_package %>",
        "target": "<%= settings.oracle_manager_package %>",
        "options": {
          "salt": "<%= settings.salt %>-oracle",
          "owner": "<%= settings.owner %>"
        }
      },
      "usde": {
        "source": "mintable-token:2.0",
        "target": "fake-usde-token",
        "options": {
          "name": "Ethena USD (fake)",
          "symbol": "USDe",
          "owner": "<%= settings.deployer %>"
        }
      },
      "susde_deploy": {
        "source": "mintable-token:2.0",
        "target": "fake-susde-token",
        "options": {
          "name": "Ethena Staked USD (fake)",
          "symbol": "sUSDe",
          "owner": "<%= settings.deployer %>"
        }
      },
      "wsteth_deploy": {
        "source": "mintable-token:2.0",
        "target": "fake-wsteth-token",
        "options": {
          "name": "Lido Wrapped Staked ETH (fake)",
          "symbol": "WstETH",
          "owner": "<%= settings.deployer %>"
        }
      }
    },
    "provision": {
      "system": {
        "source": "<%= settings.snx_package %>",
        "target": "<%= settings.snx_package %>@<%= settings.target_preset %>",
        "options": {
          "owner": "<%= settings.owner %>",
          "salt": "<%= settings.salt %>",
          "bundleSalt": "<%= settings.bundleSalt %>",
          "oracle_manager_package": "<%= settings.oracle_manager_package %>"
        }
      },
      "legacyMarket": {
        "source": "<%= settings.legacy_market_package %>",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "owner": "<%= settings.pdao %>",
          "pool_owner": "<%= settings.pdao %>",
          "v2x_package": "<%= settings.v2x_package %>",
          "v3_package": "<%= settings.snx_package %>",
          "salt": "<%= settings.salt %>",
          "synthetixPackage": "<%= settings.snx_package %>@<%= settings.target_preset %>",
          "synthetixPreset": "<%= settings.target_preset %>",
          "market_id": "1"
        },
        "depends": [
          "provision.system"
        ]
      },
      "spotFactory": {
        "source": "<%= settings.spot_market_package %>",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "coreProxyOwner": "<%= settings.owner %>",
          "owner": "<%= settings.owner %>",
          "salt": "<%= settings.salt %>",
          "synthetixPackage": "<%= settings.snx_package %>@<%= settings.target_preset %>",
          "synthetixPreset": "<%= settings.target_preset %>"
        },
        "depends": [
          "provision.system"
        ]
      },
      "pyth_erc7412_wrapper": {
        "source": "pyth-erc7412-wrapper:3.5.0",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "salt": "<%= settings.salt %>",
          "pythAddress": "<%= settings.pyth_price_verification_address %>"
        }
      },
      "bfp_market_factory": {
        "source": "<%= settings.bfp_market_package %>",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "coreProxyOwner": "<%= settings.owner %>",
          "owner": "<%= settings.owner %>",
          "salt": "<%= settings.salt %>",
          "synthetixPackage": "<%= settings.snx_package %>@<%= settings.target_preset %>",
          "synthetixPreset": "<%= settings.target_preset %>"
        },
        "depends": [
          "provision.system"
        ]
      },
      "weth_mock_collateral": {
        "source": "mintable-token:1.8",
        "options": {
          "name": "Fake WETH",
          "symbol": "fWETH",
          "owner": "<%= settings.owner %>",
          "decimals": "18"
        }
      },
      "snx_v4_onchain": {
        "source": "<%= settings.snx_v4_onchain %>",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "owner": "<%= settings.owner %>"
        },
        "depends": [
          "provision.system",
          "setting.owner",
          "setting.snx_v4_onchain",
          "setting.target_preset"
        ]
      }
    },
    "pull": {
      "wsteth": {
        "source": "<%= settings.wsteth_package %>"
      },
      "susde": {
        "source": "<%= settings.susde_package %>"
      }
    },
    "name": "synthetix-omnibus",
    "version": "14",
    "description": "Includes the full synthetix system with configurations applied",
    "deployers": [
      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
    ],
    "var": {
      "bfp": {
        "keeper_profit_margin_usd": "<%= parseEther('5') %>",
        "keeper_profit_margin_percent": "<%= parseEther('0.01') %>",
        "min_collateral_discount": "0",
        "low_utilization_slope_percent": "0",
        "high_utilization_slope_percent": "0"
      }
    }
  },
  "state": {
    "import.usde": {
      "artifacts": {
        "imports": {
          "usde": {
            "url": "ipfs://QmXF2CaadkuYoXJbUGYpmqBrtCwCZZq1Yx3hn8bef5rpWe",
            "contracts": {
              "Token": {
                "address": "0x9458caaca74249abbe9e964b3ce155b98ec88ef2",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
                  "Token",
                  "TKN",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x7532dfc16990f45321be00ee08f8eb3ed22e8910738163bb731b9ebdf85d12fd",
                "sourceName": "src/EthenaUSD.sol",
                "contractName": "EthenaUSD",
                "bytecode": "",
                "source": {
                  "solcVersion": "string",
                  "input": ""
                },
                "deployedOn": "deploy.Token",
                "highlight": true,
                "gasUsed": 774713,
                "gasCost": "1000000000"
              }
            }
          }
        }
      },
      "hash": "d478e8dcded82070032d990699323aed",
      "version": 7
    },
    "pull.wsteth": {
      "artifacts": {
        "imports": {
          "wsteth": {
            "url": "ipfs://QmNoK393eMsXtQDwrnDubSrr32s3yGrKw3jeNY8HKoEwmu",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "Token": {
                "address": "0x961B263D3c66Ad3f9DD18f14e17280d6ECDB742c",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Lido Wrapped Staked ETH (fake)",
                  "WstETH",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x8f6720224a70a359170bf51640b729b5f68a1342a85ea1c3b1511d74aedc4604",
                "deployTxnBlockNumber": "6269403",
                "deployTimestamp": "1720433424",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.Token",
                "highlight": true,
                "gasUsed": 775049,
                "gasCost": "266446644194"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": "fdf4449d7e5766e11cba6f4a5c5c5166",
      "version": 7
    },
    "setting.account_timeout_withdraw": {
      "artifacts": {
        "settings": {
          "account_timeout_withdraw": "86400"
        }
      },
      "hash": "3acf2387dde14e993634ca9badf5f564",
      "version": 7
    },
    "setting.bigCapDefaultStalenessTolerance": {
      "artifacts": {
        "settings": {
          "bigCapDefaultStalenessTolerance": "3600"
        }
      },
      "hash": "cbe1a4d89aef65379151a3c5b905bd85",
      "version": 7
    },
    "setting.bigCapSettlementDelay": {
      "artifacts": {
        "settings": {
          "bigCapSettlementDelay": "2"
        }
      },
      "hash": "dc88d99e217842b1532ccb97f443b6c1",
      "version": 7
    },
    "setting.bigCapSettlementWindowDuration": {
      "artifacts": {
        "settings": {
          "bigCapSettlementWindowDuration": "60"
        }
      },
      "hash": "c85e06d9961059219500923347f33fea",
      "version": 7
    },
    "setting.bigCapStrictStalenessTolerance": {
      "artifacts": {
        "settings": {
          "bigCapStrictStalenessTolerance": "60"
        }
      },
      "hash": "c85e06d9961059219500923347f33fea",
      "version": 7
    },
    "setting.bundleSalt": {
      "artifacts": {
        "settings": {
          "bundleSalt": "snax"
        }
      },
      "hash": "1ce8073982f8b8f0b4fa5c488c1fac79",
      "version": 7
    },
    "setting.ccip_router": {
      "artifacts": {
        "settings": {
          "ccip_router": "0xd0daae2231e9cb96b94c8512223533293c3693bf"
        }
      },
      "hash": "2fcc13b67af7d8d1f63bc733ab2093a3",
      "version": 7
    },
    "setting.ccip_token_pool": {
      "artifacts": {
        "settings": {
          "ccip_token_pool": "0x9b65749b38278060c5787cce0391ac7f1094c8e8"
        }
      },
      "hash": "9a7177a0d525a9e20f249329c0eba81c",
      "version": 7
    },
    "setting.commitmentPriceDelay": {
      "artifacts": {
        "settings": {
          "commitmentPriceDelay": "2"
        }
      },
      "hash": "dc88d99e217842b1532ccb97f443b6c1",
      "version": 7
    },
    "setting.deployer": {
      "artifacts": {
        "settings": {
          "deployer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
        }
      },
      "hash": "3f34e398af2b36b5093aa17a4fca6630",
      "version": 7
    },
    "setting.legacy_market_package": {
      "artifacts": {
        "settings": {
          "legacy_market_package": "synthetix-legacy-market:3.12.1"
        }
      },
      "hash": "f29a71212d44f5622127da262a5855e3",
      "version": 7
    },
    "setting.minimum_liquidity_ratio": {
      "artifacts": {
        "settings": {
          "minimum_liquidity_ratio": "1100000000000000000"
        }
      },
      "hash": "109f80ca4fb572bb6f910537ee0e25cf",
      "version": 7
    },
    "setting.owner": {
      "artifacts": {
        "settings": {
          "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
        }
      },
      "hash": "3f34e398af2b36b5093aa17a4fca6630",
      "version": 7
    },
    "setting.pdao": {
      "artifacts": {
        "settings": {
          "pdao": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
        }
      },
      "hash": "3f34e398af2b36b5093aa17a4fca6630",
      "version": 7
    },
    "setting.pool_owner": {
      "artifacts": {
        "settings": {
          "pool_owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
        }
      },
      "hash": "3f34e398af2b36b5093aa17a4fca6630",
      "version": 7
    },
    "setting.pythFeedUrl": {
      "artifacts": {
        "settings": {
          "pythFeedUrl": "https://api.synthetix.io/pyth-mainnet/api/get_vaa_ccip?data={data}"
        }
      },
      "hash": "058ec3941064e4dab0718029527ec1c6",
      "version": 7
    },
    "setting.pythPriceVerificationAddress": {
      "artifacts": {
        "settings": {
          "pythPriceVerificationAddress": ""
        }
      },
      "hash": "99914b932bd37a50b983c5e7c90ae93b",
      "version": 7
    },
    "setting.pythSnxFeedId": {
      "artifacts": {
        "settings": {
          "pythSnxFeedId": "0x39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3"
        }
      },
      "hash": "17469af564340e6ed8cd0790eedf9dcb",
      "version": 7
    },
    "setting.pythSusdeFeedId": {
      "artifacts": {
        "settings": {
          "pythSusdeFeedId": "0xca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c"
        }
      },
      "hash": "ea5e0a00569c0ff4dd9f3087eac4781f",
      "version": 7
    },
    "setting.pythUsdeFeedId": {
      "artifacts": {
        "settings": {
          "pythUsdeFeedId": "0x6ec879b1e9963de5ee97e9c8710b742d6228252a5e2ca12d4ae81d7fe5ee8c5d"
        }
      },
      "hash": "9c72575519d4fc3e44b0cb2e20f30e20",
      "version": 7
    },
    "setting.pythWstEthFeedId": {
      "artifacts": {
        "settings": {
          "pythWstEthFeedId": "0x6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784"
        }
      },
      "hash": "cb4086c85a963842f252d7a743cef1d1",
      "version": 7
    },
    "setting.pyth_price_verification_address": {
      "artifacts": {
        "settings": {
          "pyth_price_verification_address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21"
        }
      },
      "hash": "28339a056dfd235faf11c34658c84cd9",
      "version": 7
    },
    "setting.salt": {
      "artifacts": {
        "settings": {
          "salt": "snaxtest"
        }
      },
      "hash": "c7900b6dff9927358ab1d2ff006c6199",
      "version": 7
    },
    "setting.sc_pool_id": {
      "artifacts": {
        "settings": {
          "sc_pool_id": "1"
        }
      },
      "hash": "5f6fb867a611e73895d85f93fc6f7baa",
      "version": 7
    },
    "setting.settlementMaxRoundingLoss": {
      "artifacts": {
        "settings": {
          "settlementMaxRoundingLoss": "0.000001"
        }
      },
      "hash": "345d1577ca60402d0a0632b8eec80f43",
      "version": 7
    },
    "setting.settlementMinimumUsdExchangeAmount": {
      "artifacts": {
        "settings": {
          "settlementMinimumUsdExchangeAmount": "0.000001"
        }
      },
      "hash": "345d1577ca60402d0a0632b8eec80f43",
      "version": 7
    },
    "setting.settlementReward": {
      "artifacts": {
        "settings": {
          "settlementReward": "1"
        }
      },
      "hash": "5f6fb867a611e73895d85f93fc6f7baa",
      "version": 7
    },
    "setting.snx_aggregator_address": {
      "artifacts": {
        "settings": {
          "snx_aggregator_address": "0xc0F82A46033b8BdBA4Bb0B0e28Bc2006F64355bC"
        }
      },
      "hash": "5b820a04f19805235fd4d772ea52c1e2",
      "version": 7
    },
    "setting.snx_liquidation_reward": {
      "artifacts": {
        "settings": {
          "snx_liquidation_reward": "50000000000000000000"
        }
      },
      "hash": "189426cb43efa7e96fc7b458df592ef1",
      "version": 7
    },
    "setting.snx_package": {
      "artifacts": {
        "settings": {
          "snx_package": "synthetix:3.12.2"
        }
      },
      "hash": "9345fc0b7189e5198d2ed95bc17979cc",
      "version": 7
    },
    "setting.spotStrictStalenessTolerance": {
      "artifacts": {
        "settings": {
          "spotStrictStalenessTolerance": "60"
        }
      },
      "hash": "c85e06d9961059219500923347f33fea",
      "version": 7
    },
    "setting.spot_market_package": {
      "artifacts": {
        "settings": {
          "spot_market_package": "synthetix-spot-market:3.12.2"
        }
      },
      "hash": "1b0783350e74489e88078fba7047275d",
      "version": 7
    },
    "setting.susde_aggregator_address": {
      "artifacts": {
        "settings": {
          "susde_aggregator_address": "0x6f7be09227d98Ce1Df812d5Bc745c0c775507E92"
        }
      },
      "hash": "81aa49e44526c0ac1b2c0b0b2297fa86",
      "version": 7
    },
    "setting.susde_package": {
      "artifacts": {
        "settings": {
          "susde_package": "fake-susde-token"
        }
      },
      "hash": "2d8f2e720f9b4e2d965929f837b4470f",
      "version": 7
    },
    "setting.synthUsdeAsyncFixedFee": {
      "artifacts": {
        "settings": {
          "synthUsdeAsyncFixedFee": "0"
        }
      },
      "hash": "4dcc24a97eaa6583aab6a5b0cb07d27e",
      "version": 7
    },
    "setting.synthUsdeSkewScale": {
      "artifacts": {
        "settings": {
          "synthUsdeSkewScale": "0"
        }
      },
      "hash": "4dcc24a97eaa6583aab6a5b0cb07d27e",
      "version": 7
    },
    "setting.synth_usde_max_market_collateral": {
      "artifacts": {
        "settings": {
          "synth_usde_max_market_collateral": "100000000000000000000000000"
        }
      },
      "hash": "42ab02ae7f916e6ed59461f615370985",
      "version": 7
    },
    "setting.target_preset": {
      "artifacts": {
        "settings": {
          "target_preset": "main"
        }
      },
      "hash": "79d2862416f9389ec7270a618c6ce1b3",
      "version": 7
    },
    "setting.usde_aggregator_address": {
      "artifacts": {
        "settings": {
          "usde_aggregator_address": "0x55ec7c3ed0d7CB5DF4d3d8bfEd2ecaf28b4638fb"
        }
      },
      "hash": "1686f19bc3219f36a6045c71fdedc0f3",
      "version": 7
    },
    "setting.weth_liquidation_reward": {
      "artifacts": {
        "settings": {
          "weth_liquidation_reward": "10000000000000000000"
        }
      },
      "hash": "a2f32c5aee3e6b3d3f034554cca7a559",
      "version": 7
    },
    "setting.wsteth_aggregator_address": {
      "artifacts": {
        "settings": {
          "wsteth_aggregator_address": "0xaaabb530434B0EeAAc9A42E25dbC6A22D7bE218E"
        }
      },
      "hash": "6ce7a0236e3de33e3751533a1bdadbed",
      "version": 7
    },
    "provision.pyth_erc7412_wrapper": {
      "artifacts": {
        "imports": {
          "pyth_erc7412_wrapper": {
            "url": "ipfs://QmUFQV4A2hVxfAFNrpBBQjJ4dAReyvXrF1U3mo6sLEnXLW",
            "tags": [
              "latest"
            ],
            "target": "pyth-erc7412-wrapper:3.5.0@main",
            "preset": "main",
            "settings": {
              "pythAddress": "0x420000000000000000000000000000000000000F"
            },
            "contracts": {
              "PythERC7412Wrapper": {
                "address": "0x08C1F629Ec5935F95Ef3e614dF5B94086528C25c",
                "abi": [
                  "constructor(address _pythAddress)",
                  "error FeeRequired(uint256 amount)",
                  "error NotSupported(uint8 updateType)",
                  "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "function fulfillOracleQuery(bytes signedOffchainData) payable",
                  "function getBenchmarkPrice(bytes32 priceId, uint64 requestedTime) view returns (int256)",
                  "function getLatestPrice(bytes32 priceId, uint256 stalenessTolerance) view returns (int256)",
                  "function oracleId() pure returns (bytes32)",
                  "function pythAddress() view returns (address)"
                ],
                "constructorArgs": [
                  "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1723469232",
                "sourceName": "contracts/PythERC7412Wrapper.sol",
                "contractName": "PythERC7412Wrapper",
                "deployedOn": "contract.PythERC7412Wrapper",
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "extras": {
              "pythAddress": "0x420000000000000000000000000000000000000F"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "provision.system": {
      "artifacts": {
        "imports": {
          "system": {
            "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
            "tags": [
              "latest"
            ],
            "target": "synthetix:3.12.2@main",
            "preset": "main",
            "contracts": {
              "AccountModule": {
                "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                "abi": [
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "error ZeroAddress()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                "deployTxnBlockNumber": "8374751",
                "deployTimestamp": "1747828308",
                "sourceName": "contracts/modules/core/AccountModule.sol",
                "contractName": "AccountModule",
                "deployedOn": "contract.AccountModule",
                "gasUsed": 1225797,
                "gasCost": "840868922"
              },
              "AccountTokenModule": {
                "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                "abi": [
                  "error AlreadyInitialized()",
                  "error CannotSelfApprove(address addr)",
                  "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                  "error InvalidOwner(address addr)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidTransferRecipient(address addr)",
                  "error OverflowUint256ToUint128()",
                  "error TokenAlreadyMinted(uint256 id)",
                  "error TokenDoesNotExist(uint256 id)",
                  "error Unauthorized(address addr)",
                  "error ZeroAddress()",
                  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                  "function approve(address to, uint256 tokenId)",
                  "function balanceOf(address holder) view returns (uint256 balance)",
                  "function burn(uint256 tokenId)",
                  "function getApproved(uint256 tokenId) view returns (address operator)",
                  "function initialize(string tokenName, string tokenSymbol, string uri)",
                  "function isApprovedForAll(address holder, address operator) view returns (bool)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 tokenId)",
                  "function name() view returns (string)",
                  "function ownerOf(uint256 tokenId) view returns (address)",
                  "function safeMint(address to, uint256 tokenId, bytes data)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                  "function setAllowance(uint256 tokenId, address spender)",
                  "function setApprovalForAll(address operator, bool approved)",
                  "function setBaseTokenURI(string uri)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function symbol() view returns (string)",
                  "function tokenByIndex(uint256 index) view returns (uint256)",
                  "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                  "function tokenURI(uint256 tokenId) view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transferFrom(address from, address to, uint256 tokenId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                "deployTxnBlockNumber": "6660715",
                "deployTimestamp": "1725880512",
                "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                "contractName": "AccountTokenModule",
                "deployedOn": "contract.AccountTokenModule",
                "gasUsed": 1787668,
                "gasCost": "49074705690"
              },
              "AssociateDebtModule": {
                "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                "abi": [
                  "error AccountNotFound(uint128 accountId)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                  "error MarketNotFound(uint128 marketId)",
                  "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error Unauthorized(address addr)",
                  "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                  "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                "deployTxnBlockNumber": "8374752",
                "deployTimestamp": "1747828320",
                "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                "contractName": "AssociateDebtModule",
                "deployedOn": "contract.AssociateDebtModule",
                "gasUsed": 2612609,
                "gasCost": "812346162"
              },
              "AssociatedSystemsModule": {
                "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                "abi": [
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error Unauthorized(address addr)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                "contractName": "AssociatedSystemsModule",
                "deployedOn": "contract.AssociatedSystemsModule",
                "gasUsed": 877153,
                "gasCost": "1160601901"
              },
              "CcipReceiverModule": {
                "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                "abi": [
                  "error InvalidMessage()",
                  "error NotCcipRouter(address)",
                  "error Unauthorized(address addr)",
                  "error UnsupportedNetwork(uint64)",
                  "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                "deployTxnBlockNumber": "6660717",
                "deployTimestamp": "1725880536",
                "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                "contractName": "CcipReceiverModule",
                "deployedOn": "contract.CcipReceiverModule",
                "gasUsed": 469476,
                "gasCost": "49006680826"
              },
              "CollateralConfigurationModule": {
                "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                "abi": [
                  "error EmptyRevertReason()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToUint256()",
                  "error PositionOutOfBounds()",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                  "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                  "function getCollateralPrice(address collateralType) view returns (uint256)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                "deployTxnBlockNumber": "8374753",
                "deployTimestamp": "1747828332",
                "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                "contractName": "CollateralConfigurationModule",
                "deployedOn": "contract.CollateralConfigurationModule",
                "gasUsed": 872728,
                "gasCost": "799886935"
              },
              "CollateralModule": {
                "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                "abi": [
                  "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                  "error AccountNotFound(uint128 accountId)",
                  "error CollateralDepositDisabled(address collateralType)",
                  "error CollateralNotFound()",
                  "error EmptyRevertReason()",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientAccountCollateral(uint256 amount)",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PositionOutOfBounds()",
                  "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                  "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                  "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                  "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                  "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                  "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                  "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                  "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                  "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                  "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                "deployTxnBlockNumber": "8374754",
                "deployTimestamp": "1747828344",
                "sourceName": "contracts/modules/core/CollateralModule.sol",
                "contractName": "CollateralModule",
                "deployedOn": "contract.CollateralModule",
                "gasUsed": 1937434,
                "gasCost": "802377814"
              },
              "CrossChainUSDModule": {
                "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                "abi": [
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                  "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                "deployTxnBlockNumber": "6660720",
                "deployTimestamp": "1725880572",
                "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                "contractName": "CrossChainUSDModule",
                "deployedOn": "contract.CrossChainUSDModule",
                "gasUsed": 595289,
                "gasCost": "49967783440"
              },
              "FeatureFlagModule": {
                "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                "abi": [
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                "deployTxnBlockNumber": "6660721",
                "deployTimestamp": "1725880596",
                "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 777054,
                "gasCost": "47712806352"
              },
              "IssueUSDModule": {
                "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                "abi": [
                  "error CollateralDepositDisabled(address collateralType)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                  "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                  "error InsufficientDebt(int256 currentDebt)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketNotFound(uint128 marketId)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PoolNotFound(uint128 poolId)",
                  "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                  "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                "deployTxnBlockNumber": "8374755",
                "deployTimestamp": "1747828356",
                "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                "contractName": "IssueUSDModule",
                "deployedOn": "contract.IssueUSDModule",
                "gasUsed": 3042995,
                "gasCost": "794478182"
              },
              "LiquidationModule": {
                "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                "abi": [
                  "error AccountNotFound(uint128 accountId)",
                  "error CannotScaleEmptyMapping()",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                  "error InsufficientMappedAmount()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketNotFound(uint128 marketId)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MustBeVaultLiquidated()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error OverflowUint256ToUint64()",
                  "error OverflowUint32ToInt32()",
                  "error OverflowUint64ToInt64()",
                  "error PositionOutOfBounds()",
                  "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                  "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                  "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                "deployTxnBlockNumber": "8374756",
                "deployTimestamp": "1747828368",
                "sourceName": "contracts/modules/core/LiquidationModule.sol",
                "contractName": "LiquidationModule",
                "deployedOn": "contract.LiquidationModule",
                "gasUsed": 4620402,
                "gasCost": "816261199"
              },
              "MarketCollateralModule": {
                "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                "abi": [
                  "error CollateralNotFound()",
                  "error EmptyRevertReason()",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                  "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                  "error Unauthorized(address addr)",
                  "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                  "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                  "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                  "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                  "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                  "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                  "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                "deployTxnBlockNumber": "8374757",
                "deployTimestamp": "1747828380",
                "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                "contractName": "MarketCollateralModule",
                "deployedOn": "contract.MarketCollateralModule",
                "gasUsed": 1298300,
                "gasCost": "812078176"
              },
              "MarketManagerModule": {
                "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                "abi": [
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error FeatureUnavailable(bytes32 which)",
                  "error IncorrectMarketInterface(address market)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error Unauthorized(address addr)",
                  "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                  "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                  "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                  "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                  "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                  "function getMarketAddress(uint128 marketId) view returns (address)",
                  "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                  "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                  "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                  "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                  "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                  "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                  "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                  "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                  "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                  "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                  "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                  "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                  "function getOracleManager() view returns (address)",
                  "function getUsdToken() view returns (address)",
                  "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                  "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                  "function registerMarket(address market) returns (uint128 marketId)",
                  "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                  "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                  "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                "deployTxnBlockNumber": "8374758",
                "deployTimestamp": "1747828392",
                "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                "contractName": "MarketManagerModule",
                "deployedOn": "contract.MarketManagerModule",
                "gasUsed": 2816393,
                "gasCost": "798490927"
              },
              "PoolConfigurationModule": {
                "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                "abi": [
                  "error PoolNotFound(uint128 poolId)",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event PoolApprovedAdded(uint256 poolId)",
                  "event PoolApprovedRemoved(uint256 poolId)",
                  "event PreferredPoolSet(uint256 poolId)",
                  "function addApprovedPool(uint128 poolId)",
                  "function getApprovedPools() view returns (uint256[])",
                  "function getPreferredPool() view returns (uint128)",
                  "function removeApprovedPool(uint128 poolId)",
                  "function setPreferredPool(uint128 poolId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                "deployTxnBlockNumber": "8374759",
                "deployTimestamp": "1747828404",
                "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                "contractName": "PoolConfigurationModule",
                "deployedOn": "contract.PoolConfigurationModule",
                "gasUsed": 446271,
                "gasCost": "802346058"
              },
              "PoolModule": {
                "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                "abi": [
                  "error CapacityLocked(uint256 marketId)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketNotFound(uint128 marketId)",
                  "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PoolAlreadyExists(uint128 poolId)",
                  "error PoolNotFound(uint128 poolId)",
                  "error Unauthorized(address addr)",
                  "error ZeroAddress()",
                  "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                  "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                  "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                  "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                  "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                  "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                  "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                  "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function acceptPoolOwnership(uint128 poolId)",
                  "function createPool(uint128 requestedPoolId, address owner)",
                  "function getMinLiquidityRatio() view returns (uint256)",
                  "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                  "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                  "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                  "function getPoolName(uint128 poolId) view returns (string poolName)",
                  "function getPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                  "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                  "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                  "function renouncePoolNomination(uint128 poolId)",
                  "function renouncePoolOwnership(uint128 poolId)",
                  "function revokePoolNomination(uint128 poolId)",
                  "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                  "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                  "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                  "function setPoolName(uint128 poolId, string name)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                "deployTxnBlockNumber": "8374760",
                "deployTimestamp": "1747828416",
                "sourceName": "contracts/modules/core/PoolModule.sol",
                "contractName": "PoolModule",
                "deployedOn": "contract.PoolModule",
                "gasUsed": 4099803,
                "gasCost": "791076552"
              },
              "RewardsManagerModule": {
                "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                "abi": [
                  "error AccountNotFound(uint128 accountId)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error OverflowUint32ToInt32()",
                  "error OverflowUint64ToInt64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PositionOutOfBounds()",
                  "error RewardUnavailable(address distributor)",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                  "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                  "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                  "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                "deployTxnBlockNumber": "8374761",
                "deployTimestamp": "1747828428",
                "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                "contractName": "RewardsManagerModule",
                "deployedOn": "contract.RewardsManagerModule",
                "gasUsed": 2642251,
                "gasCost": "784183135"
              },
              "USDTokenModule": {
                "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                "abi": [
                  "error AlreadyInitialized()",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientBalance(uint256 required, uint256 existing)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error Unauthorized(address addr)",
                  "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                  "event Transfer(address indexed from, address indexed to, uint256 amount)",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address owner) view returns (uint256)",
                  "function burn(uint256 amount)",
                  "function burn(address target, uint256 amount)",
                  "function burnWithAllowance(address from, address spender, uint256 amount)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address target, uint256 amount)",
                  "function name() view returns (string)",
                  "function setAllowance(address from, address spender, uint256 amount)",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                "deployTxnBlockNumber": "6660731",
                "deployTimestamp": "1725880740",
                "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                "contractName": "USDTokenModule",
                "deployedOn": "contract.USDTokenModule",
                "gasUsed": 1110294,
                "gasCost": "53285251123"
              },
              "UtilsModule": {
                "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                "abi": [
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowUint256ToUint64()",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "event ConfigSet(bytes32 indexed k, bytes32 v)",
                  "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                  "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                  "function configureOracleManager(address oracleManagerAddress)",
                  "function getConfig(bytes32 k) view returns (bytes32 v)",
                  "function getConfigAddress(bytes32 k) view returns (address v)",
                  "function getConfigUint(bytes32 k) view returns (uint256 v)",
                  "function getTrustedForwarder() pure returns (address)",
                  "function isTrustedForwarder(address forwarder) pure returns (bool)",
                  "function setConfig(bytes32 k, bytes32 v)",
                  "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                "deployTxnBlockNumber": "8374762",
                "deployTimestamp": "1747828440",
                "sourceName": "contracts/modules/core/UtilsModule.sol",
                "contractName": "UtilsModule",
                "deployedOn": "contract.UtilsModule",
                "gasUsed": 770698,
                "gasCost": "783578952"
              },
              "VaultModule": {
                "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                "abi": [
                  "error CapacityLocked(uint256 marketId)",
                  "error CollateralDepositDisabled(address collateralType)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientAccountCollateral(uint256 amount)",
                  "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                  "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                  "error InsufficientDelegation(uint256 minDelegation)",
                  "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                  "error InvalidCollateralAmount()",
                  "error InvalidLeverage(uint256 leverage)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketNotFound(uint128 marketId)",
                  "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error OverflowUint32ToInt32()",
                  "error OverflowUint64ToInt64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                  "error PoolNotFound(uint128 poolId)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                  "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                  "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                  "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                  "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                  "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                  "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                  "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                  "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                  "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                  "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                "deployTxnBlockNumber": "8374763",
                "deployTimestamp": "1747828452",
                "sourceName": "contracts/modules/core/VaultModule.sol",
                "contractName": "VaultModule",
                "deployedOn": "contract.VaultModule",
                "gasUsed": 4732148,
                "gasCost": "756426945"
              },
              "InitialModuleBundle": {
                "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "sourceName": "contracts/modules/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "InitialCoreProxy": {
                "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [
                  "0x828EED723cAF0A8F822249231266E38dF614923C",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialCoreProxy",
                "gasUsed": 185358,
                "gasCost": "978908043"
              },
              "AccountRouter": {
                "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error AlreadyInitialized()",
                  "error CannotSelfApprove(address addr)",
                  "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                  "error InvalidOwner(address addr)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidTransferRecipient(address addr)",
                  "error OverflowUint256ToUint128()",
                  "error TokenAlreadyMinted(uint256 id)",
                  "error TokenDoesNotExist(uint256 id)",
                  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                  "function approve(address to, uint256 tokenId)",
                  "function balanceOf(address holder) view returns (uint256 balance)",
                  "function burn(uint256 tokenId)",
                  "function getApproved(uint256 tokenId) view returns (address operator)",
                  "function initialize(string tokenName, string tokenSymbol, string uri)",
                  "function isApprovedForAll(address holder, address operator) view returns (bool)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 tokenId)",
                  "function name() view returns (string)",
                  "function ownerOf(uint256 tokenId) view returns (address)",
                  "function safeMint(address to, uint256 tokenId, bytes data)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                  "function setAllowance(uint256 tokenId, address spender)",
                  "function setApprovalForAll(address operator, bool approved)",
                  "function setBaseTokenURI(string uri)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function symbol() view returns (string)",
                  "function tokenByIndex(uint256 index) view returns (uint256)",
                  "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                  "function tokenURI(uint256 tokenId) view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transferFrom(address from, address to, uint256 tokenId)"
                ],
                "deployedOn": "router.AccountRouter",
                "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                "deployTxnBlockNumber": "8374764",
                "deployTimestamp": "1747828464",
                "contractName": "AccountRouter",
                "sourceName": "AccountRouter.sol",
                "gasUsed": 1963401,
                "gasCost": "769642764"
              },
              "CoreRouter": {
                "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error AccountNotFound(uint128 accountId)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                  "error MarketNotFound(uint128 marketId)",
                  "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                  "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error InvalidMessage()",
                  "error NotCcipRouter(address)",
                  "error UnsupportedNetwork(uint64)",
                  "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                  "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                  "error CollateralDepositDisabled(address collateralType)",
                  "error CollateralNotFound()",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error InsufficientAccountCollateral(uint256 amount)",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowUint256ToUint64()",
                  "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                  "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                  "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                  "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                  "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                  "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                  "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                  "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                  "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                  "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                  "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                  "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                  "function getCollateralPrice(address collateralType) view returns (uint256)",
                  "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                  "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                  "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                  "error InsufficientDebt(int256 currentDebt)",
                  "error PoolNotFound(uint128 poolId)",
                  "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                  "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                  "error CannotScaleEmptyMapping()",
                  "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                  "error InsufficientMappedAmount()",
                  "error MustBeVaultLiquidated()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error OverflowUint32ToInt32()",
                  "error OverflowUint64ToInt64()",
                  "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                  "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                  "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                  "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                  "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                  "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                  "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                  "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                  "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                  "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                  "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                  "error IncorrectMarketInterface(address market)",
                  "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                  "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                  "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                  "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                  "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                  "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                  "function getMarketAddress(uint128 marketId) view returns (address)",
                  "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                  "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                  "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                  "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                  "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                  "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                  "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                  "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                  "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                  "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                  "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                  "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                  "function getOracleManager() view returns (address)",
                  "function getUsdToken() view returns (address)",
                  "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                  "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                  "function registerMarket(address market) returns (uint128 marketId)",
                  "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                  "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                  "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                  "event PoolApprovedAdded(uint256 poolId)",
                  "event PoolApprovedRemoved(uint256 poolId)",
                  "event PreferredPoolSet(uint256 poolId)",
                  "function addApprovedPool(uint128 poolId)",
                  "function getApprovedPools() view returns (uint256[])",
                  "function getPreferredPool() view returns (uint128)",
                  "function removeApprovedPool(uint128 poolId)",
                  "function setPreferredPool(uint128 poolId)",
                  "error CapacityLocked(uint256 marketId)",
                  "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                  "error PoolAlreadyExists(uint128 poolId)",
                  "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                  "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                  "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                  "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                  "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                  "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                  "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                  "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function acceptPoolOwnership(uint128 poolId)",
                  "function createPool(uint128 requestedPoolId, address owner)",
                  "function getMinLiquidityRatio() view returns (uint256)",
                  "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                  "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                  "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                  "function getPoolName(uint128 poolId) view returns (string poolName)",
                  "function getPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                  "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                  "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                  "function renouncePoolNomination(uint128 poolId)",
                  "function renouncePoolOwnership(uint128 poolId)",
                  "function revokePoolNomination(uint128 poolId)",
                  "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                  "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                  "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                  "function setPoolName(uint128 poolId, string name)",
                  "error RewardUnavailable(address distributor)",
                  "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                  "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                  "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                  "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                  "event ConfigSet(bytes32 indexed k, bytes32 v)",
                  "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                  "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                  "function configureOracleManager(address oracleManagerAddress)",
                  "function getConfig(bytes32 k) view returns (bytes32 v)",
                  "function getConfigAddress(bytes32 k) view returns (address v)",
                  "function getConfigUint(bytes32 k) view returns (uint256 v)",
                  "function getTrustedForwarder() pure returns (address)",
                  "function isTrustedForwarder(address forwarder) pure returns (bool)",
                  "function setConfig(bytes32 k, bytes32 v)",
                  "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "error InsufficientDelegation(uint256 minDelegation)",
                  "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                  "error InvalidCollateralAmount()",
                  "error InvalidLeverage(uint256 leverage)",
                  "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                  "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                  "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                  "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                  "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                  "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                  "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                  "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                  "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                  "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                  "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                  "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                ],
                "deployedOn": "router.CoreRouter",
                "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                "deployTxnBlockNumber": "8374765",
                "deployTimestamp": "1747828476",
                "contractName": "CoreRouter",
                "sourceName": "CoreRouter.sol",
                "gasUsed": 5621270,
                "gasCost": "779829074"
              },
              "USDRouter": {
                "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error AlreadyInitialized()",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientBalance(uint256 required, uint256 existing)",
                  "error InvalidParameter(string parameter, string reason)",
                  "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                  "event Transfer(address indexed from, address indexed to, uint256 amount)",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address owner) view returns (uint256)",
                  "function burn(uint256 amount)",
                  "function burn(address target, uint256 amount)",
                  "function burnWithAllowance(address from, address spender, uint256 amount)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address target, uint256 amount)",
                  "function name() view returns (string)",
                  "function setAllowance(address from, address spender, uint256 amount)",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                ],
                "deployedOn": "router.USDRouter",
                "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                "deployTxnBlockNumber": "8374766",
                "deployTimestamp": "1747828488",
                "contractName": "USDRouter",
                "sourceName": "USDRouter.sol",
                "gasUsed": 2087124,
                "gasCost": "790603927"
              },
              "CoreProxy": {
                "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error AccountNotFound(uint128 accountId)",
                  "error EmptyDistribution()",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                  "error MarketNotFound(uint128 marketId)",
                  "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                  "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error InvalidMessage()",
                  "error NotCcipRouter(address)",
                  "error UnsupportedNetwork(uint64)",
                  "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                  "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                  "error CollateralDepositDisabled(address collateralType)",
                  "error CollateralNotFound()",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error InsufficientAccountCollateral(uint256 amount)",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowUint256ToUint64()",
                  "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                  "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                  "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                  "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                  "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                  "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                  "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                  "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                  "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                  "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                  "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                  "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                  "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                  "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                  "function getCollateralPrice(address collateralType) view returns (uint256)",
                  "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                  "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                  "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                  "error InsufficientDebt(int256 currentDebt)",
                  "error PoolNotFound(uint128 poolId)",
                  "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                  "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                  "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                  "error CannotScaleEmptyMapping()",
                  "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                  "error InsufficientMappedAmount()",
                  "error MustBeVaultLiquidated()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error OverflowUint32ToInt32()",
                  "error OverflowUint64ToInt64()",
                  "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                  "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                  "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                  "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                  "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                  "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                  "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                  "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                  "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                  "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                  "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                  "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                  "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                  "error IncorrectMarketInterface(address market)",
                  "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                  "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                  "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                  "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                  "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                  "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                  "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                  "function getMarketAddress(uint128 marketId) view returns (address)",
                  "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                  "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                  "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                  "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                  "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                  "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                  "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                  "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                  "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                  "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                  "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                  "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                  "function getOracleManager() view returns (address)",
                  "function getUsdToken() view returns (address)",
                  "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                  "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                  "function registerMarket(address market) returns (uint128 marketId)",
                  "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                  "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                  "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                  "event PoolApprovedAdded(uint256 poolId)",
                  "event PoolApprovedRemoved(uint256 poolId)",
                  "event PreferredPoolSet(uint256 poolId)",
                  "function addApprovedPool(uint128 poolId)",
                  "function getApprovedPools() view returns (uint256[])",
                  "function getPreferredPool() view returns (uint128)",
                  "function removeApprovedPool(uint128 poolId)",
                  "function setPreferredPool(uint128 poolId)",
                  "error CapacityLocked(uint256 marketId)",
                  "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                  "error PoolAlreadyExists(uint128 poolId)",
                  "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                  "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                  "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                  "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                  "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                  "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                  "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                  "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                  "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function acceptPoolOwnership(uint128 poolId)",
                  "function createPool(uint128 requestedPoolId, address owner)",
                  "function getMinLiquidityRatio() view returns (uint256)",
                  "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                  "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                  "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                  "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                  "function getPoolName(uint128 poolId) view returns (string poolName)",
                  "function getPoolOwner(uint128 poolId) view returns (address)",
                  "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                  "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                  "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                  "function renouncePoolNomination(uint128 poolId)",
                  "function renouncePoolOwnership(uint128 poolId)",
                  "function revokePoolNomination(uint128 poolId)",
                  "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                  "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                  "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                  "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                  "function setPoolName(uint128 poolId, string name)",
                  "error RewardUnavailable(address distributor)",
                  "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                  "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                  "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                  "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                  "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                  "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                  "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                  "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                  "event ConfigSet(bytes32 indexed k, bytes32 v)",
                  "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                  "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                  "function configureOracleManager(address oracleManagerAddress)",
                  "function getConfig(bytes32 k) view returns (bytes32 v)",
                  "function getConfigAddress(bytes32 k) view returns (address v)",
                  "function getConfigUint(bytes32 k) view returns (uint256 v)",
                  "function getTrustedForwarder() pure returns (address)",
                  "function isTrustedForwarder(address forwarder) pure returns (bool)",
                  "function setConfig(bytes32 k, bytes32 v)",
                  "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "error InsufficientDelegation(uint256 minDelegation)",
                  "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                  "error InvalidCollateralAmount()",
                  "error InvalidLeverage(uint256 leverage)",
                  "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                  "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                  "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                  "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                  "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                  "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                  "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                  "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                  "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                  "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                  "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                  "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.InitialModuleBundle.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "AccountProxy": {
                "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error AlreadyInitialized()",
                  "error CannotSelfApprove(address addr)",
                  "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                  "error InvalidOwner(address addr)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidTransferRecipient(address addr)",
                  "error OverflowUint256ToUint128()",
                  "error TokenAlreadyMinted(uint256 id)",
                  "error TokenDoesNotExist(uint256 id)",
                  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                  "function approve(address to, uint256 tokenId)",
                  "function balanceOf(address holder) view returns (uint256 balance)",
                  "function burn(uint256 tokenId)",
                  "function getApproved(uint256 tokenId) view returns (address operator)",
                  "function initialize(string tokenName, string tokenSymbol, string uri)",
                  "function isApprovedForAll(address holder, address operator) view returns (bool)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 tokenId)",
                  "function name() view returns (string)",
                  "function ownerOf(uint256 tokenId) view returns (address)",
                  "function safeMint(address to, uint256 tokenId, bytes data)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                  "function setAllowance(uint256 tokenId, address spender)",
                  "function setApprovalForAll(address operator, bool approved)",
                  "function setBaseTokenURI(string uri)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function symbol() view returns (string)",
                  "function tokenByIndex(uint256 index) view returns (uint256)",
                  "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                  "function tokenURI(uint256 tokenId) view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transferFrom(address from, address to, uint256 tokenId)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                "contractName": "UUPSProxyWithOwner",
                "deployedOn": "invoke.init_account",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "USDProxy": {
                "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error AlreadyInitialized()",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientBalance(uint256 required, uint256 existing)",
                  "error InvalidParameter(string parameter, string reason)",
                  "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                  "event Transfer(address indexed from, address indexed to, uint256 amount)",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address owner) view returns (uint256)",
                  "function burn(uint256 amount)",
                  "function burn(address target, uint256 amount)",
                  "function burnWithAllowance(address from, address spender, uint256 amount)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address target, uint256 amount)",
                  "function name() view returns (string)",
                  "function setAllowance(address from, address spender, uint256 amount)",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                "contractName": "UUPSProxyWithOwner",
                "deployedOn": "invoke.init_usd",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "account_token_name": "Synthetix Account",
              "account_token_symbol": "SACCT",
              "bundleSalt": "main",
              "oracle_manager_package": "oracle-manager",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "main",
              "usd_token_name": "Synthetic USD Token v3",
              "usd_token_symbol": "sUSD",
              "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
            },
            "imports": {
              "oracle_manager": {
                "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                "contracts": {
                  "NodeModule": {
                    "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                    "abi": [
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidPrice(int256 price)",
                      "error NodeNotRegistered(bytes32 nodeId)",
                      "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowInt56ToInt24()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint160()",
                      "error OverflowUint56ToInt56()",
                      "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                      "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                      "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                      "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                    "deployTxnBlockNumber": "8374748",
                    "deployTimestamp": "1747828272",
                    "sourceName": "contracts/modules/NodeModule.sol",
                    "contractName": "NodeModule",
                    "deployedOn": "contract.NodeModule",
                    "gasUsed": 4896112,
                    "gasCost": "807273578"
                  },
                  "CoreModule": {
                    "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1727702064",
                    "sourceName": "contracts/modules/CoreModule.sol",
                    "contractName": "CoreModule",
                    "deployedOn": "contract.CoreModule",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialProxy": {
                    "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1727702064",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialProxy",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "OracleRouter": {
                    "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidPrice(int256 price)",
                      "error NodeNotRegistered(bytes32 nodeId)",
                      "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowInt56ToInt24()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint160()",
                      "error OverflowUint56ToInt56()",
                      "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                      "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                      "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                      "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                    ],
                    "deployedOn": "router.OracleRouter",
                    "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                    "deployTxnBlockNumber": "8374749",
                    "deployTimestamp": "1747828284",
                    "contractName": "OracleRouter",
                    "sourceName": "OracleRouter.sol",
                    "gasUsed": 1728151,
                    "gasCost": "866245566"
                  },
                  "Proxy": {
                    "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidPrice(int256 price)",
                      "error NodeNotRegistered(bytes32 nodeId)",
                      "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowInt56ToInt24()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint160()",
                      "error OverflowUint56ToInt56()",
                      "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                      "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                      "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                      "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                      "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                      "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgrade_proxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "imports": {
                  "trusted_multicall_forwarder": {
                    "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                    "tags": [
                      "latest"
                    ],
                    "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                    "preset": "with-oracle-manager",
                    "settings": {
                      "salt": "salt"
                    },
                    "contracts": {
                      "TrustedMulticallForwarder": {
                        "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                        "abi": [
                          "constructor()",
                          "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                          "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                          "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                          "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                          "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                          "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                          "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                          "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                          "function getBasefee() view returns (uint256 basefee)",
                          "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                          "function getBlockNumber() view returns (uint256 blockNumber)",
                          "function getChainId() view returns (uint256 chainid)",
                          "function getCurrentBlockCoinbase() view returns (address coinbase)",
                          "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                          "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                          "function getEthBalance(address addr) view returns (uint256 balance)",
                          "function getLastBlockHash() view returns (bytes32 blockHash)",
                          "function getPrevRandao() view returns (uint256 prevrandao)",
                          "function nonces(address owner) view returns (uint256)",
                          "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                          "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                          "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                          "event EIP712DomainChanged()",
                          "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                          "error AddressInsufficientBalance(address account)",
                          "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                          "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                          "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                          "error ERC2771UntrustfulTarget(address target, address forwarder)",
                          "error FailedInnerCall()",
                          "error InvalidAccountNonce(address account, uint256 currentNonce)",
                          "error InvalidShortString()",
                          "error StringTooLong(string str)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "src/TrustedMulticallForwarder.sol",
                        "contractName": "TrustedMulticallForwarder",
                        "deployedOn": "contract.TrustedMulticallForwarder",
                        "gasUsed": 0,
                        "gasCost": "0"
                      }
                    },
                    "extras": {
                      "salt": "salt"
                    }
                  }
                },
                "settings": {
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "oracle-manager-official"
                },
                "txns": {
                  "upgrade_proxy": {
                    "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                    "blockNumber": "8374750",
                    "timestamp": "1747828296",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                            "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_proxy",
                    "gasUsed": 55420,
                    "gasCost": "863204254",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "oracle-manager-official"
                }
              }
            },
            "txns": {
              "register_const_one_oracle": {
                "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                "events": {
                  "NodeRegistered": [
                    {
                      "name": "NodeRegistered",
                      "args": [
                        "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                        8,
                        "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                        []
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.register_const_one_oracle",
                "gasUsed": 108479,
                "gasCost": "922529803",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "upgrade_core_proxy": {
                "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                "blockNumber": "8374767",
                "timestamp": "1747828500",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                        "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 51327,
                "gasCost": "785077138",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_burnUsd": {
                "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6275726e55736400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_burnUsd",
                "gasUsed": 56949,
                "gasCost": "1117962692",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_claimRewards": {
                "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x636c61696d526577617264730000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_claimRewards",
                "gasUsed": 57009,
                "gasCost": "1081589799",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_createAccount": {
                "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_createAccount",
                "gasUsed": 57021,
                "gasCost": "1189291565",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_delegateCollateral": {
                "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_delegateCollateral",
                "gasUsed": 57081,
                "gasCost": "1145067438",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_deposit": {
                "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f73697400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_deposit",
                "gasUsed": 56949,
                "gasCost": "1099485069",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_depositMarketCollateral": {
                "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                "gasUsed": 57141,
                "gasCost": "1050556709",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_depositMarketUsd": {
                "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_depositMarketUsd",
                "gasUsed": 57057,
                "gasCost": "997930950",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_liquidate": {
                "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c69717569646174650000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidate",
                "gasUsed": 56973,
                "gasCost": "1064136427",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_liquidateToTreasury": {
                "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                "blockNumber": "8374768",
                "timestamp": "1747828512",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                "gasUsed": 57111,
                "gasCost": "769840723",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_liquidateVault": {
                "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidateVault",
                "gasUsed": 57033,
                "gasCost": "1013537198",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_migrateDelegation": {
                "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                "blockNumber": "8374769",
                "timestamp": "1747828524",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_migrateDelegation",
                "gasUsed": 57087,
                "gasCost": "745322710",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_mintUsd": {
                "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_mintUsd",
                "gasUsed": 56949,
                "gasCost": "977776751",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_withdraw": {
                "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x7769746864726177000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdraw",
                "gasUsed": 56961,
                "gasCost": "1025829153",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_withdrawMarketCollateral": {
                "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                "gasUsed": 57153,
                "gasCost": "993756197",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enable_feature_withdrawMarketUsd": {
                "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                "gasUsed": 57069,
                "gasCost": "960143044",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "init_account": {
                "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                "blockNumber": "8374770",
                "timestamp": "1747828536",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                        "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_account",
                "gasUsed": 80746,
                "gasCost": "743339977",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "init_usd": {
                "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                "blockNumber": "8374771",
                "timestamp": "1747828548",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                        "0xA999E916141368c05BE86965c0161a9De958d82b"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633230000000000000000000000000000000000000000000000000000000",
                        "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                        "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                        "0xA999E916141368c05BE86965c0161a9De958d82b"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_usd",
                "gasUsed": 94076,
                "gasCost": "728100935",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "set_oracle_manager": {
                "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                "events": {},
                "deployedOn": "invoke.set_oracle_manager",
                "gasUsed": 54810,
                "gasCost": "979601782",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "configure_usd_collateral": {
                "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                "events": {
                  "CollateralConfigured": [
                    {
                      "name": "CollateralConfigured",
                      "args": [
                        "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                        {
                          "depositingEnabled": true,
                          "issuanceRatioD18": "10000000000000000000",
                          "liquidationRatioD18": "10000000000000000000",
                          "liquidationRewardD18": "0",
                          "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                          "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                          "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                        }
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.configure_usd_collateral",
                "gasUsed": 240627,
                "gasCost": "1006144889",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "account_token_name": "Synthetix Account",
              "account_token_symbol": "SACCT",
              "bundleSalt": "main",
              "oracle_manager_package": "oracle-manager",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "main",
              "usd_token_name": "Synthetic USD Token v3",
              "usd_token_symbol": "sUSD",
              "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "pull.susde": {
      "artifacts": {
        "imports": {
          "susde": {
            "url": "ipfs://QmSjmhQPsU4j5w92f9E1ddQybeQvTFLrELqYtgfwxw6DzR",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "Token": {
                "address": "0xFDa8192b495Cb568c6C556a6F6D89A1E3Ab87106",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Ethena Staked USD (fake)",
                  "sUSDe",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1720433400",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.Token",
                "highlight": true,
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": "97354ce8405b4cdc6295b96bfe4c8665",
      "version": 7
    },
    "invoke.allowAllRegisterMarket": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "allowAllRegisterMarket": {
            "hash": "0x24327f8f571e0e890ef559ff9dfda8f5aab1884330ffe26ef054c2a7df440879",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.allowAllRegisterMarket",
            "gasUsed": 57033,
            "gasCost": "1004537067",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "8ba0a46b7fa26fcadcc308952a258f4b",
      "version": 7
    },
    "invoke.allowAllTransferCrossChain": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "allowAllTransferCrossChain": {
            "hash": "0x9b04bc5e7719658cc50949d7f37736e7cc3f64bac4e9e5c903eaba72abb867cd",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x7472616e7366657243726f7373436861696e0000000000000000000000000000",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.allowAllTransferCrossChain",
            "gasUsed": 57081,
            "gasCost": "996817068",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "08124219d1732e8bdcc9c8e8d96c32df",
      "version": 7
    },
    "invoke.configureChainlinkCrossChain": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureChainlinkCrossChain": {
            "hash": "0x2fa9d360afdd0d442bf008c8d79cdd917c6bbe9d92871cd468c990eb144756b1",
            "events": {
              "AssociatedSystemSet": [
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b53656e64000000000000000000000000000000",
                    "0xD0daae2231E9CB96b94C8512223533293C3693Bf",
                    "0xD0daae2231E9CB96b94C8512223533293C3693Bf"
                  ]
                },
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b52656376000000000000000000000000000000",
                    "0xD0daae2231E9CB96b94C8512223533293C3693Bf",
                    "0xD0daae2231E9CB96b94C8512223533293C3693Bf"
                  ]
                },
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b546f6b656e506f6f6c00000000000000000000",
                    "0x9B65749b38278060C5787Cce0391AC7f1094C8E8",
                    "0x9B65749b38278060C5787Cce0391AC7f1094C8E8"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureChainlinkCrossChain",
            "gasUsed": 284351,
            "gasCost": "974443702",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "a363efba9d5a7c59fca5a62b0fd06796",
      "version": 7
    },
    "invoke.permitCreatePool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "permitCreatePool": {
            "hash": "0xa3d7835fb1d35b4e441ebda244a343dcd95d2fa54abea2df829bc2658e9630e2",
            "events": {
              "FeatureFlagAllowlistAdded": [
                {
                  "name": "FeatureFlagAllowlistAdded",
                  "args": [
                    "0x637265617465506f6f6c00000000000000000000000000000000000000000000",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.permitCreatePool",
            "gasUsed": 101585,
            "gasCost": "975374553",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "fb61fcb323bdb96136c7815f1fe17749",
      "version": 7
    },
    "invoke.registerLookupSnxOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerLookupSnxOracleNode": {
            "hash": "0x4bae5be58a142479d9fd2516a19c24d48d7c21bd38592580ab440504b5ef36ec",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x6b76b73294b1dc92ada3354faa272b836ee3ce2d5be71c46cbe8b3e07e76ad0c",
                    9,
                    "0x00000000000000000000000083ae08221416e1f5cd848a5911988a184110afd939d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da30000000000000000000000000000000000000000000000000000000000000e10",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerLookupSnxOracleNode",
            "gasUsed": 154751,
            "gasCost": "985509567",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "snx_lookup_oracle_id": "0x6b76b73294b1dc92ada3354faa272b836ee3ce2d5be71c46cbe8b3e07e76ad0c"
        }
      },
      "hash": "1f9cd63cb80d2e514fe12bd24dcc0d01",
      "version": 7
    },
    "invoke.registerLookupSusdeOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerLookupSusdeOracleNode": {
            "hash": "0x02893c8ab4c89ad84cb20c06ef98fcf102c42710c76249dfc21d0a972c54a415",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x0faa5c2008d0a57a0cc8d733733f4c9ec6c74aff68c2b3f4abb5d97f62231259",
                    9,
                    "0x00000000000000000000000083ae08221416e1f5cd848a5911988a184110afd9ca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c0000000000000000000000000000000000000000000000000000000000000e10",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerLookupSusdeOracleNode",
            "gasUsed": 154751,
            "gasCost": "1039581157",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_lookup_oracle_id": "0x0faa5c2008d0a57a0cc8d733733f4c9ec6c74aff68c2b3f4abb5d97f62231259"
        }
      },
      "hash": "7747ec2880d896c43aa5c137bfc7c0e6",
      "version": 7
    },
    "invoke.registerLookupWstEthOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerLookupWstEthOracleNode": {
            "hash": "0xfe0339844c46111a65f1a79990abf60a21627615ff984934f919dc228970cf24",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x4058cedfa4a25f97f611ab45fe6649dd8a71369e13f19ac4bd1bb18f54e3cfc6",
                    9,
                    "0x00000000000000000000000083ae08221416e1f5cd848a5911988a184110afd96df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e7840000000000000000000000000000000000000000000000000000000000000e10",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerLookupWstEthOracleNode",
            "gasUsed": 154751,
            "gasCost": "995789168",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "wsteth_lookup_oracle_id": "0x4058cedfa4a25f97f611ab45fe6649dd8a71369e13f19ac4bd1bb18f54e3cfc6"
        }
      },
      "hash": "437c89c9ac1f135e2421cc106fd4b680",
      "version": 7
    },
    "invoke.registerPythSnxOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerPythSnxOracleNode": {
            "hash": "0x661eeb54a2bb6567166de7226dffc3e1b5883a9f5ff3faf44b58fa501a751f6d",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x5db8d5ecf48e99cf2e7d22ac46e623efe1bfe140b78f75ee4b243e738a52822b",
                    5,
                    "0x000000000000000000000000dd24f84d36bf92c65f92307595335bdfab5bbd2139d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da30000000000000000000000000000000000000000000000000000000000000000",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerPythSnxOracleNode",
            "gasUsed": 146106,
            "gasCost": "985202081",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "snx_pyth_oracle_id": "0x5db8d5ecf48e99cf2e7d22ac46e623efe1bfe140b78f75ee4b243e738a52822b"
        }
      },
      "hash": "2907db3c564538404dc11cdb0b449ba0",
      "version": 7
    },
    "invoke.registerPythSusdeOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerPythSusdeOracleNode": {
            "hash": "0x32f14d2e54457fb25c42d4ee105338aed9964ec30270c9856f08d73493306489",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xdf6310120694b92b54df223540e2050c7a1bad93ae217d5be1d2d32b0cf9e36c",
                    5,
                    "0x000000000000000000000000dd24f84d36bf92c65f92307595335bdfab5bbd21ca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c0000000000000000000000000000000000000000000000000000000000000000",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerPythSusdeOracleNode",
            "gasUsed": 146106,
            "gasCost": "1107885076",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_pyth_oracle_id": "0xdf6310120694b92b54df223540e2050c7a1bad93ae217d5be1d2d32b0cf9e36c"
        }
      },
      "hash": "8e1c2141964a5911b4f5f3018f867ac8",
      "version": 7
    },
    "invoke.registerPythWstEthOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerPythWstEthOracleNode": {
            "hash": "0x5f4a24493c4a8b53d354a350327bbc366170f8a71ed9dbe30856ffa6295bd1ef",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xd78e6d53200dc24c0c99ff0ee1455699b07fd68228c903f1123dcf529f81db49",
                    5,
                    "0x000000000000000000000000dd24f84d36bf92c65f92307595335bdfab5bbd216df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e7840000000000000000000000000000000000000000000000000000000000000000",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerPythWstEthOracleNode",
            "gasUsed": 146106,
            "gasCost": "1059031403",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "wsteth_pyth_oracle_id": "0xd78e6d53200dc24c0c99ff0ee1455699b07fd68228c903f1123dcf529f81db49"
        }
      },
      "hash": "d8210dd7cef09b7c8bb22774e65fd05e",
      "version": 7
    },
    "invoke.register_usde_oracle_node": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "register_usde_oracle_node": {
            "hash": "0x5c1c73e9a8f1ab4644b300383ad80cffdda1e781fe9e99508eca62c62ecd5ceb",
            "blockNumber": "6269422",
            "timestamp": "1720433688",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x0468f26657dcd3110c8c09f9bbeb97c940efc357ead39a0d71fd249484554e35",
                    3,
                    "0x00000000000000000000000055ec7c3ed0d7cb5df4d3d8bfed2ecaf28b4638fb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.register_usde_oracle_node",
            "gasUsed": 154771,
            "gasCost": "264680362613",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "usde_oracle_id": "0x0468f26657dcd3110c8c09f9bbeb97c940efc357ead39a0d71fd249484554e35"
        }
      },
      "hash": "dd08e0c69b87bb7cc049dce3d219b001",
      "version": 7
    },
    "invoke.setAccountTimeoutWithdraw": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setAccountTimeoutWithdraw": {
            "hash": "0x5c87296f60a01d619f844d64cd528a2514ad638df51943944dc2a25242c8d084",
            "events": {},
            "deployedOn": "invoke.setAccountTimeoutWithdraw",
            "gasUsed": 54931,
            "gasCost": "1001774517",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "ec2a88288450968a396c4c25ec74a979",
      "version": 7
    },
    "invoke.setMinimumLiquidityRatio": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setMinimumLiquidityRatio": {
            "hash": "0xe635ab036c85b8d2f9894bc4b8ab53f01302d4cc0f2edd860640611f95144c90",
            "blockNumber": "7893767",
            "timestamp": "1741869096",
            "events": {
              "SetMinLiquidityRatio": [
                {
                  "name": "SetMinLiquidityRatio",
                  "args": [
                    "1100000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setMinimumLiquidityRatio",
            "gasUsed": 38598,
            "gasCost": "41196217414",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "647ca967dcdc9413cdbe021c8bb50571",
      "version": 7
    },
    "invoke.setSupportedCrossChainNetworks": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSupportedCrossChainNetworks": {
            "hash": "0xafabe60745442a07c8b4476f9f4f3221f14f506c14ec560a836d4eb3e2b22cb7",
            "events": {
              "NewSupportedCrossChainNetwork": [
                {
                  "name": "NewSupportedCrossChainNetwork",
                  "args": [
                    "420"
                  ]
                },
                {
                  "name": "NewSupportedCrossChainNetwork",
                  "args": [
                    "421613"
                  ]
                },
                {
                  "name": "NewSupportedCrossChainNetwork",
                  "args": [
                    "80001"
                  ]
                },
                {
                  "name": "NewSupportedCrossChainNetwork",
                  "args": [
                    "84531"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSupportedCrossChainNetworks",
            "gasUsed": 426007,
            "gasCost": "1074932038",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "4e4be73a1f0b19397c6ab0d71dcc3a46",
      "version": 7
    },
    "provision.legacyMarket": {
      "artifacts": {
        "imports": {
          "legacyMarket": {
            "url": "ipfs://QmQhnEtKbMkQT2qLgj7vpPbkFTe2zRJBrViWeZm7eKiwi3",
            "tags": [
              "latest"
            ],
            "target": "synthetix-legacy-market:3.12.2@main",
            "preset": "main",
            "contracts": {
              "InitialModuleBundle": {
                "address": "0xC58723Db315E0abdA2811cE37b25488483e25f7C",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x975284f0877d84edd9d5336dedd476cc4ef3b083f4ec044bf81a20206b5350b2",
                "sourceName": "contracts/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 496162,
                "gasCost": "1069461708"
              },
              "Market": {
                "address": "0x466f123470f535E4EE4cbd60ae5C0379d2D23c10",
                "abi": [
                  "constructor()",
                  "error ImplementationIsSterile(address implementation)",
                  "error InsufficientCollateralMigrated(uint256 amountRequested, uint256 amountAvailable)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketAlreadyRegistered(uint256 existingMarketId)",
                  "error MigrationInProgress()",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error NothingToMigrate()",
                  "error OverflowUint256ToUint128()",
                  "error Paused()",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error V2xPaused()",
                  "error ZeroAddress()",
                  "event AccountLiquidatedInMigration(address staker, uint256 collateralAmount, uint256 debtAmount, uint256 cratio)",
                  "event AccountMigrated(address indexed staker, uint256 indexed accountId, uint256 collateralAmount, uint256 debtAmount)",
                  "event ConvertedUSD(address indexed account, uint256 amount)",
                  "event DebtForgiven(address indexed staker, uint256 indexed accountId, uint256 debtForgiven)",
                  "event MarketRegistered(address indexed marketAddress, uint128 indexed marketId, address indexed sender)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PauseMigrationSet(address indexed sender, bool paused)",
                  "event PauseStablecoinConversionSet(address indexed sender, bool paused)",
                  "event ReturnedUSD(address indexed account, uint256 amount)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function MIN_DELEGATION_TIME() view returns (uint32)",
                  "function acceptOwnership()",
                  "function convertUSD(uint256 amount)",
                  "function getImplementation() view returns (address)",
                  "function marketId() view returns (uint128)",
                  "function migrate(uint128 accountId)",
                  "function migrateOnBehalf(address staker, uint128 accountId)",
                  "function minimumCredit(uint128) pure returns (uint256 lockedAmount)",
                  "function name(uint128) pure returns (string)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function onERC721Received(address operator, address, uint256, bytes) view returns (bytes4)",
                  "function owner() view returns (address)",
                  "function pauseMigration() view returns (bool)",
                  "function pauseStablecoinConversion() view returns (bool)",
                  "function registerMarket() returns (uint128 newMarketId)",
                  "function renounceNomination()",
                  "function reportedDebt(uint128 requestedMarketId) view returns (uint256 debt)",
                  "function returnUSD(uint256 amount)",
                  "function rewardsDistributor() view returns (address)",
                  "function setPauseMigration(bool paused)",
                  "function setPauseStablecoinConversion(bool paused)",
                  "function setSystemAddresses(address v2xResolverAddress, address v3SystemAddress, address snxDistributor) returns (bool didInitialize)",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function transferDeferredAccount(uint256 accountId, address to)",
                  "function upgradeTo(address to)",
                  "function v2xResolver() view returns (address)",
                  "function v3System() view returns (address)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xbb521a68d392dd92be1b7bcf06ff600a8ef7c1fec51f047f3298f71315170772",
                "deployTxnBlockNumber": "8374775",
                "deployTimestamp": "1747828596",
                "sourceName": "contracts/LegacyMarket.sol",
                "contractName": "LegacyMarket",
                "deployedOn": "contract.Market",
                "gasUsed": 2895219,
                "gasCost": "659346890"
              },
              "InitialProxy": {
                "address": "0x94c53500d38f95dEea37Bada599d54D8DabEF776",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [
                  "0xC58723Db315E0abdA2811cE37b25488483e25f7C",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xdc58e13445f6345571a1daf51f9e15f4b0c6fe6969ee2511404ccc1bf1c0ddb8",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 248149,
                "gasCost": "1045222101"
              },
              "Proxy": {
                "address": "0x94c53500d38f95dEea37Bada599d54D8DabEF776",
                "abi": [
                  "constructor()",
                  "error ImplementationIsSterile(address implementation)",
                  "error InsufficientCollateralMigrated(uint256 amountRequested, uint256 amountAvailable)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketAlreadyRegistered(uint256 existingMarketId)",
                  "error MigrationInProgress()",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error NothingToMigrate()",
                  "error OverflowUint256ToUint128()",
                  "error Paused()",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error V2xPaused()",
                  "error ZeroAddress()",
                  "event AccountLiquidatedInMigration(address staker, uint256 collateralAmount, uint256 debtAmount, uint256 cratio)",
                  "event AccountMigrated(address indexed staker, uint256 indexed accountId, uint256 collateralAmount, uint256 debtAmount)",
                  "event ConvertedUSD(address indexed account, uint256 amount)",
                  "event DebtForgiven(address indexed staker, uint256 indexed accountId, uint256 debtForgiven)",
                  "event MarketRegistered(address indexed marketAddress, uint128 indexed marketId, address indexed sender)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PauseMigrationSet(address indexed sender, bool paused)",
                  "event PauseStablecoinConversionSet(address indexed sender, bool paused)",
                  "event ReturnedUSD(address indexed account, uint256 amount)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function MIN_DELEGATION_TIME() view returns (uint32)",
                  "function acceptOwnership()",
                  "function convertUSD(uint256 amount)",
                  "function getImplementation() view returns (address)",
                  "function marketId() view returns (uint128)",
                  "function migrate(uint128 accountId)",
                  "function migrateOnBehalf(address staker, uint128 accountId)",
                  "function minimumCredit(uint128) pure returns (uint256 lockedAmount)",
                  "function name(uint128) pure returns (string)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function onERC721Received(address operator, address, uint256, bytes) view returns (bytes4)",
                  "function owner() view returns (address)",
                  "function pauseMigration() view returns (bool)",
                  "function pauseStablecoinConversion() view returns (bool)",
                  "function registerMarket() returns (uint128 newMarketId)",
                  "function renounceNomination()",
                  "function reportedDebt(uint128 requestedMarketId) view returns (uint256 debt)",
                  "function returnUSD(uint256 amount)",
                  "function rewardsDistributor() view returns (address)",
                  "function setPauseMigration(bool paused)",
                  "function setPauseStablecoinConversion(bool paused)",
                  "function setSystemAddresses(address v2xResolverAddress, address v3SystemAddress, address snxDistributor) returns (bool didInitialize)",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function transferDeferredAccount(uint256 accountId, address to)",
                  "function upgradeTo(address to)",
                  "function v2xResolver() view returns (address)",
                  "function v3System() view returns (address)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.InitialModuleBundle.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgradeProxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "pool_owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "sc_pool_id": "1",
              "v2x_package": "synthetix:2.101.2",
              "v3_package": "synthetix:3.3.15",
              "marketId": "1"
            },
            "imports": {
              "v2x": {
                "url": "ipfs://QmcurVEpKX6JRCuXDurRAhSqzfggU3gqTZfhGhKJRLySLc",
                "settings": {
                  "network": "sepolia"
                },
                "contracts": {
                  "SafeDecimalMath": {
                    "address": "0x9D6D846D4546614a7e668e66886624c0AE21D786",
                    "sourceName": "contracts/SafeDecimalMath.sol",
                    "contractName": "SafeDecimalMath",
                    "abi": [
                      "function PRECISE_UNIT() view returns (uint256)",
                      "function UNIT() view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function highPrecisionDecimals() view returns (uint8)",
                      "function preciseUnit() pure returns (uint256)",
                      "function unit() pure returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x18c40ba98bbd439f0ac6f9e28c7ea71611d24e702fc57740a24ec8e923762173",
                    "deployedOn": "run.synthetix"
                  },
                  "Math": {
                    "address": "0xe5BBE61dC29670Fa52E3a3bCdb7278d926Db1A2A",
                    "sourceName": "contracts/Math.sol",
                    "contractName": "Math",
                    "abi": [],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x495178a84773952a2d4013276787b6ccb8783506ae3a81d58b7b009e51945a9d",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemSettingsLib": {
                    "address": "0xDeB9b7a8e380202986B597462aFec64Ac394B2B1",
                    "sourceName": "contracts/SystemSettingsLib.sol",
                    "contractName": "SystemSettingsLib",
                    "abi": [
                      "function MAX_ATOMIC_TWAP_WINDOW() view returns (uint256)",
                      "function MAX_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW() view returns (uint256)",
                      "function MAX_ATOMIC_VOLUME_PER_BLOCK() view returns (uint256)",
                      "function MAX_CROSS_DOMAIN_GAS_LIMIT() view returns (uint256)",
                      "function MAX_EXCHANGE_FEE_RATE() view returns (uint256)",
                      "function MAX_FEE_PERIOD_DURATION() view returns (uint256)",
                      "function MAX_ISSUANCE_RATIO() view returns (uint256)",
                      "function MAX_LIQUIDATION_DELAY() view returns (uint256)",
                      "function MAX_LIQUIDATION_PENALTY() view returns (uint256)",
                      "function MAX_LIQUIDATION_RATIO() view returns (uint256)",
                      "function MAX_MINIMUM_STAKE_TIME() view returns (uint256)",
                      "function MAX_TARGET_THRESHOLD() view returns (uint256)",
                      "function MAX_WRAPPER_BURN_FEE_RATE() view returns (int256)",
                      "function MAX_WRAPPER_MINT_FEE_RATE() view returns (int256)",
                      "function MIN_ATOMIC_TWAP_WINDOW() view returns (uint256)",
                      "function MIN_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW() view returns (uint256)",
                      "function MIN_CROSS_DOMAIN_GAS_LIMIT() view returns (uint256)",
                      "function MIN_FEE_PERIOD_DURATION() view returns (uint256)",
                      "function MIN_LIQUIDATION_DELAY() view returns (uint256)",
                      "function RATIO_FROM_TARGET_BUFFER() view returns (uint256)",
                      "function SETTINGS_CONTRACT_NAME() view returns (bytes32)",
                      "function contractName() view returns (bytes32)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x1ddb36f695d3ccc816a99c0eedfaa1db47e36880628507f91fa72859c1914af4",
                    "deployedOn": "run.synthetix"
                  },
                  "SignedSafeDecimalMath": {
                    "address": "0x2060e6041F7C1BF9A90FA0c060E40C402d81D6CE",
                    "sourceName": "contracts/SignedSafeDecimalMath.sol",
                    "contractName": "SignedSafeDecimalMath",
                    "abi": [
                      "function PRECISE_UNIT() view returns (int256)",
                      "function UNIT() view returns (int256)",
                      "function decimals() view returns (uint8)",
                      "function highPrecisionDecimals() view returns (uint8)",
                      "function preciseUnit() pure returns (int256)",
                      "function unit() pure returns (int256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xa3a5cd32496edb6f1e2b06e18dc6c71b352c9c919c83dda27a06e94397c223c1",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeSettlementLib": {
                    "address": "0x6f40ACC62F15eA50a67dd5183cC3Cd7Aa4257830",
                    "sourceName": "contracts/ExchangeSettlementLib.sol",
                    "contractName": "ExchangeSettlementLib",
                    "abi": [
                      "event ExchangeEntryAppended(address indexed account, bytes32 src, uint256 amount, bytes32 dest, uint256 amountReceived, uint256 exchangeFeeRate, uint256 roundIdForSrc, uint256 roundIdForDest)",
                      "event ExchangeEntrySettled(address indexed from, bytes32 src, uint256 amount, bytes32 dest, uint256 reclaim, uint256 rebate, uint256 srcRoundIdAtPeriodEnd, uint256 destRoundIdAtPeriodEnd, uint256 exchangeTimestamp)",
                      "function hasWaitingPeriodOrSettlementOwing(tuple(IExchangeState exchangeState, IExchangeRates exchangeRates, ICircuitBreaker circuitBreaker, IExchangerInternalDebtCache debtCache, IIssuer issuer, ISynthetix synthetix) resolvedAddresses, address account, bytes32 currencyKey, uint256 waitingPeriod) view returns (bool)",
                      "function maxSecsLeftInWaitingPeriod(IExchangeState exchangeState, address account, bytes32 currencyKey, uint256 waitingPeriod) view returns (uint256)",
                      "function settlementOwing(tuple(IExchangeState exchangeState, IExchangeRates exchangeRates, ICircuitBreaker circuitBreaker, IExchangerInternalDebtCache debtCache, IIssuer issuer, ISynthetix synthetix) resolvedAddresses, address account, bytes32 currencyKey, uint256 waitingPeriod) view returns (uint256 reclaimAmount, uint256 rebateAmount, uint256 numEntries, tuple(bytes32 src, uint256 amount, bytes32 dest, uint256 reclaim, uint256 rebate, uint256 srcRoundIdAtPeriodEnd, uint256 destRoundIdAtPeriodEnd, uint256 timestamp)[])"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xa357325eb444a8b1e17712ca35c6f44b2c4c1036c6245b15c26d6911b13bde81",
                    "deployedOn": "run.synthetix"
                  },
                  "AddressResolver": {
                    "address": "0xc956685E0c0E639490e543bb77309864028Ae608",
                    "sourceName": "contracts/AddressResolver.sol",
                    "contractName": "AddressResolver",
                    "abi": [
                      "constructor(address _owner)",
                      "event AddressImported(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function areAddressesImported(bytes32[] names, address[] destinations) view returns (bool)",
                      "function getAddress(bytes32 name) view returns (address)",
                      "function getSynth(bytes32 key) view returns (address)",
                      "function importAddresses(bytes32[] names, address[] destinations)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCaches(address[] destinations)",
                      "function repository(bytes32) view returns (address)",
                      "function requireAndGetAddress(bytes32 name, string reason) view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x5bcdeef9221043702670448efc1228a73872c3ab97de1d0f03ecdb17bf452283",
                    "deployedOn": "run.synthetix"
                  },
                  "ReadProxyAddressResolver": {
                    "address": "0xb61a6aF69e992e1bed69b0aE0CBa5143CA25D4D1",
                    "sourceName": "contracts/ReadProxy.sol",
                    "contractName": "ReadProxy",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "function acceptOwnership()",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function target() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xecb95340d74e383ba04497b9adfb97e3a2812f37b4bef6d8ce0da6256822d04c",
                    "deployedOn": "run.synthetix"
                  },
                  "OneNetAggregatorIssuedSynths": {
                    "address": "0x98735877F4164464CA06f741F44252aF5Aa2A483",
                    "sourceName": "contracts/OneNetAggregatorIssuedSynths.sol",
                    "contractName": "OneNetAggregatorIssuedSynths",
                    "abi": [
                      "constructor(address _resolver)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SetOverrideTimestamp(uint256 timestamp)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function decimals() view returns (uint8)",
                      "function getAnswer(uint256 _roundId) view returns (int256 answer)",
                      "function getRoundData(uint80) view returns (uint80, int256, uint256, uint256, uint80)",
                      "function getTimestamp(uint256 _roundId) view returns (uint256 timestamp)",
                      "function latestRound() view returns (uint256)",
                      "function latestRoundData() view returns (uint80, int256, uint256, uint256, uint80)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function overrideTimestamp() view returns (uint256)",
                      "function owner() view returns (address)",
                      "function resolver() view returns (address)",
                      "function setOverrideTimestamp(uint256 timestamp)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xe25714d8b6b9e9b839ad2ac8741652f6ec5f3854f3d1965db96a14ae277f42f8",
                    "deployedOn": "run.synthetix"
                  },
                  "OneNetAggregatorDebtRatio": {
                    "address": "0x75f0A65Bb72B73e91169D6Bd7bcDf80111706e9E",
                    "sourceName": "contracts/OneNetAggregatorDebtRatio.sol",
                    "contractName": "OneNetAggregatorDebtRatio",
                    "abi": [
                      "constructor(address _resolver)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SetOverrideTimestamp(uint256 timestamp)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function decimals() view returns (uint8)",
                      "function getAnswer(uint256 _roundId) view returns (int256 answer)",
                      "function getRoundData(uint80) view returns (uint80, int256, uint256, uint256, uint80)",
                      "function getTimestamp(uint256 _roundId) view returns (uint256 timestamp)",
                      "function latestRound() view returns (uint256)",
                      "function latestRoundData() view returns (uint80, int256, uint256, uint256, uint80)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function overrideTimestamp() view returns (uint256)",
                      "function owner() view returns (address)",
                      "function resolver() view returns (address)",
                      "function setOverrideTimestamp(uint256 timestamp)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xf029fd15c623083c87c4f437ba4302c546527b8d8c9367605918afab92afe1bd",
                    "deployedOn": "run.synthetix"
                  },
                  "FlexibleStorage": {
                    "address": "0x8e76B16CeaB8A52A6F4dDe7a28d24Cac35d3DFE3",
                    "sourceName": "contracts/FlexibleStorage.sol",
                    "contractName": "FlexibleStorage",
                    "abi": [
                      "constructor(address _resolver)",
                      "event KeyMigrated(bytes32 fromContractName, bytes32 toContractName, bool removeAccessFromPreviousContract)",
                      "event ValueDeletedAddress(bytes32 contractName, bytes32 record, address value)",
                      "event ValueDeletedBool(bytes32 contractName, bytes32 record, bool value)",
                      "event ValueDeletedBytes32(bytes32 contractName, bytes32 record, bytes32 value)",
                      "event ValueDeletedInt(bytes32 contractName, bytes32 record, int256 value)",
                      "event ValueDeletedUInt(bytes32 contractName, bytes32 record, uint256 value)",
                      "event ValueSetAddress(bytes32 contractName, bytes32 record, address value)",
                      "event ValueSetBool(bytes32 contractName, bytes32 record, bool value)",
                      "event ValueSetBytes32(bytes32 contractName, bytes32 record, bytes32 value)",
                      "event ValueSetInt(bytes32 contractName, bytes32 record, int256 value)",
                      "event ValueSetUInt(bytes32 contractName, bytes32 record, uint256 value)",
                      "function deleteAddressValue(bytes32 contractName, bytes32 record)",
                      "function deleteBoolValue(bytes32 contractName, bytes32 record)",
                      "function deleteBytes32Value(bytes32 contractName, bytes32 record)",
                      "function deleteIntValue(bytes32 contractName, bytes32 record)",
                      "function deleteUIntValue(bytes32 contractName, bytes32 record)",
                      "function getAddressValue(bytes32 contractName, bytes32 record) view returns (address)",
                      "function getAddressValues(bytes32 contractName, bytes32[] records) view returns (address[])",
                      "function getBoolValue(bytes32 contractName, bytes32 record) view returns (bool)",
                      "function getBoolValues(bytes32 contractName, bytes32[] records) view returns (bool[])",
                      "function getBytes32Value(bytes32 contractName, bytes32 record) view returns (bytes32)",
                      "function getBytes32Values(bytes32 contractName, bytes32[] records) view returns (bytes32[])",
                      "function getIntValue(bytes32 contractName, bytes32 record) view returns (int256)",
                      "function getIntValues(bytes32 contractName, bytes32[] records) view returns (int256[])",
                      "function getUIntValue(bytes32 contractName, bytes32 record) view returns (uint256)",
                      "function getUIntValues(bytes32 contractName, bytes32[] records) view returns (uint256[])",
                      "function hashes(bytes32) view returns (bytes32)",
                      "function migrateContractKey(bytes32 fromContractName, bytes32 toContractName, bool removeAccessFromPreviousContract)",
                      "function resolverProxy() view returns (address)",
                      "function setAddressValue(bytes32 contractName, bytes32 record, address value)",
                      "function setAddressValues(bytes32 contractName, bytes32[] records, address[] values)",
                      "function setBoolValue(bytes32 contractName, bytes32 record, bool value)",
                      "function setBoolValues(bytes32 contractName, bytes32[] records, bool[] values)",
                      "function setBytes32Value(bytes32 contractName, bytes32 record, bytes32 value)",
                      "function setBytes32Values(bytes32 contractName, bytes32[] records, bytes32[] values)",
                      "function setIntValue(bytes32 contractName, bytes32 record, int256 value)",
                      "function setIntValues(bytes32 contractName, bytes32[] records, int256[] values)",
                      "function setUIntValue(bytes32 contractName, bytes32 record, uint256 value)",
                      "function setUIntValues(bytes32 contractName, bytes32[] records, uint256[] values)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x0dd196d05edc596db75b383408f2589f8f349db1e33119ece7144ac8273b6ded",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemSettings": {
                    "address": "0x6b72ba3aa550d0403F59f4714c82581658136aF8",
                    "sourceName": "contracts/SystemSettings.sol",
                    "contractName": "SystemSettings",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event AggregatorWarningFlagsUpdated(address flags)",
                      "event AtomicEquivalentForDexPricingUpdated(bytes32 synthKey, address equivalent)",
                      "event AtomicExchangeFeeUpdated(bytes32 synthKey, uint256 newExchangeFeeRate)",
                      "event AtomicMaxVolumePerBlockUpdated(uint256 newMaxVolume)",
                      "event AtomicTwapWindowUpdated(uint256 newWindow)",
                      "event AtomicVolatilityConsiderationWindowUpdated(bytes32 synthKey, uint256 newVolatilityConsiderationWindow)",
                      "event AtomicVolatilityUpdateThresholdUpdated(bytes32 synthKey, uint256 newVolatilityUpdateThreshold)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CollapseFeeRateUpdated(uint256 collapseFeeRate)",
                      "event CrossChainSynthTransferEnabledUpdated(bytes32 synthKey, uint256 value)",
                      "event CrossDomainMessageGasLimitChanged(uint8 gasLimitType, uint256 newLimit)",
                      "event DebtSnapshotStaleTimeUpdated(uint256 debtSnapshotStaleTime)",
                      "event EtherWrapperBurnFeeRateUpdated(uint256 rate)",
                      "event EtherWrapperMaxETHUpdated(uint256 maxETH)",
                      "event EtherWrapperMintFeeRateUpdated(uint256 rate)",
                      "event ExchangeDynamicFeeRoundsUpdated(uint256 dynamicFeeRounds)",
                      "event ExchangeDynamicFeeThresholdUpdated(uint256 dynamicFeeThreshold)",
                      "event ExchangeDynamicFeeWeightDecayUpdated(uint256 dynamicFeeWeightDecay)",
                      "event ExchangeFeeUpdated(bytes32 synthKey, uint256 newExchangeFeeRate)",
                      "event ExchangeMaxDynamicFeeUpdated(uint256 maxDynamicFee)",
                      "event FeePeriodDurationUpdated(uint256 newFeePeriodDuration)",
                      "event FlagRewardUpdated(uint256 newReward)",
                      "event InteractionDelayUpdated(uint256 interactionDelay)",
                      "event IssuanceRatioUpdated(uint256 newRatio)",
                      "event LiquidateRewardUpdated(uint256 newReward)",
                      "event LiquidationDelayUpdated(uint256 newDelay)",
                      "event LiquidationEscrowDurationUpdated(uint256 newDuration)",
                      "event LiquidationPenaltyUpdated(uint256 newPenalty)",
                      "event LiquidationRatioUpdated(uint256 newRatio)",
                      "event MinimumStakeTimeUpdated(uint256 minimumStakeTime)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PriceDeviationThresholdUpdated(uint256 threshold)",
                      "event PureChainlinkPriceForAtomicSwapsEnabledUpdated(bytes32 synthKey, bool enabled)",
                      "event RateStalePeriodUpdated(uint256 rateStalePeriod)",
                      "event SelfLiquidationPenaltyUpdated(uint256 newPenalty)",
                      "event SnxLiquidationPenaltyUpdated(uint256 newPenalty)",
                      "event TargetThresholdUpdated(uint256 newTargetThreshold)",
                      "event TradingRewardsEnabled(bool enabled)",
                      "event WaitingPeriodSecsUpdated(uint256 waitingPeriodSecs)",
                      "event WrapperBurnFeeRateUpdated(address wrapper, int256 rate)",
                      "event WrapperMaxTokenAmountUpdated(address wrapper, uint256 maxTokenAmount)",
                      "event WrapperMintFeeRateUpdated(address wrapper, int256 rate)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function aggregatorWarningFlags() view returns (address)",
                      "function atomicEquivalentForDexPricing(bytes32 currencyKey) view returns (address)",
                      "function atomicExchangeFeeRate(bytes32 currencyKey) view returns (uint256)",
                      "function atomicMaxVolumePerBlock() view returns (uint256)",
                      "function atomicTwapWindow() view returns (uint256)",
                      "function atomicVolatilityConsiderationWindow(bytes32 currencyKey) view returns (uint256)",
                      "function atomicVolatilityUpdateThreshold(bytes32 currencyKey) view returns (uint256)",
                      "function collapseFeeRate(address collateral) view returns (uint256)",
                      "function crossChainSynthTransferEnabled(bytes32 currencyKey) view returns (uint256)",
                      "function crossDomainMessageGasLimit(uint8 gasLimitType) view returns (uint256)",
                      "function debtSnapshotStaleTime() view returns (uint256)",
                      "function etherWrapperBurnFeeRate() view returns (uint256)",
                      "function etherWrapperMaxETH() view returns (uint256)",
                      "function etherWrapperMintFeeRate() view returns (uint256)",
                      "function exchangeDynamicFeeRounds() view returns (uint256)",
                      "function exchangeDynamicFeeThreshold() view returns (uint256)",
                      "function exchangeDynamicFeeWeightDecay() view returns (uint256)",
                      "function exchangeFeeRate(bytes32 currencyKey) view returns (uint256)",
                      "function exchangeMaxDynamicFee() view returns (uint256)",
                      "function feePeriodDuration() view returns (uint256)",
                      "function flagReward() view returns (uint256)",
                      "function interactionDelay(address collateral) view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function issuanceRatio() view returns (uint256)",
                      "function liquidateReward() view returns (uint256)",
                      "function liquidationDelay() view returns (uint256)",
                      "function liquidationEscrowDuration() view returns (uint256)",
                      "function liquidationPenalty() view returns (uint256)",
                      "function liquidationRatio() view returns (uint256)",
                      "function minimumStakeTime() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function priceDeviationThresholdFactor() view returns (uint256)",
                      "function pureChainlinkPriceForAtomicSwapsEnabled(bytes32 currencyKey) view returns (bool)",
                      "function rateStalePeriod() view returns (uint256)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function selfLiquidationPenalty() view returns (uint256)",
                      "function setAggregatorWarningFlags(address _flags)",
                      "function setAtomicEquivalentForDexPricing(bytes32 _currencyKey, address _equivalent)",
                      "function setAtomicExchangeFeeRate(bytes32 _currencyKey, uint256 _exchangeFeeRate)",
                      "function setAtomicMaxVolumePerBlock(uint256 _maxVolume)",
                      "function setAtomicTwapWindow(uint256 _window)",
                      "function setAtomicVolatilityConsiderationWindow(bytes32 _currencyKey, uint256 _window)",
                      "function setAtomicVolatilityUpdateThreshold(bytes32 _currencyKey, uint256 _threshold)",
                      "function setCollapseFeeRate(address _collateral, uint256 _collapseFeeRate)",
                      "function setCrossChainSynthTransferEnabled(bytes32 _currencyKey, uint256 _value)",
                      "function setCrossDomainMessageGasLimit(uint8 _gasLimitType, uint256 _crossDomainMessageGasLimit)",
                      "function setDebtSnapshotStaleTime(uint256 _seconds)",
                      "function setEtherWrapperBurnFeeRate(uint256 _rate)",
                      "function setEtherWrapperMaxETH(uint256 _maxETH)",
                      "function setEtherWrapperMintFeeRate(uint256 _rate)",
                      "function setExchangeDynamicFeeRounds(uint256 rounds)",
                      "function setExchangeDynamicFeeThreshold(uint256 threshold)",
                      "function setExchangeDynamicFeeWeightDecay(uint256 weightDecay)",
                      "function setExchangeFeeRateForSynths(bytes32[] synthKeys, uint256[] exchangeFeeRates)",
                      "function setExchangeMaxDynamicFee(uint256 maxFee)",
                      "function setFeePeriodDuration(uint256 _feePeriodDuration)",
                      "function setFlagReward(uint256 reward)",
                      "function setInteractionDelay(address _collateral, uint256 _interactionDelay)",
                      "function setIssuanceRatio(uint256 ratio)",
                      "function setLiquidateReward(uint256 reward)",
                      "function setLiquidationDelay(uint256 time)",
                      "function setLiquidationEscrowDuration(uint256 duration)",
                      "function setLiquidationPenalty(uint256 penalty)",
                      "function setLiquidationRatio(uint256 _liquidationRatio)",
                      "function setMinimumStakeTime(uint256 _seconds)",
                      "function setPriceDeviationThresholdFactor(uint256 _priceDeviationThresholdFactor)",
                      "function setPureChainlinkPriceForAtomicSwapsEnabled(bytes32 _currencyKey, bool _enabled)",
                      "function setRateStalePeriod(uint256 period)",
                      "function setSelfLiquidationPenalty(uint256 penalty)",
                      "function setSnxLiquidationPenalty(uint256 penalty)",
                      "function setTargetThreshold(uint256 percent)",
                      "function setTradingRewardsEnabled(bool _tradingRewardsEnabled)",
                      "function setWaitingPeriodSecs(uint256 _waitingPeriodSecs)",
                      "function setWrapperBurnFeeRate(address _wrapper, int256 _rate)",
                      "function setWrapperMaxTokenAmount(address _wrapper, uint256 _maxTokenAmount)",
                      "function setWrapperMintFeeRate(address _wrapper, int256 _rate)",
                      "function snxLiquidationPenalty() view returns (uint256)",
                      "function targetThreshold() view returns (uint256)",
                      "function tradingRewardsEnabled() view returns (bool)",
                      "function waitingPeriodSecs() view returns (uint256)",
                      "function wrapperBurnFeeRate(address wrapper) view returns (int256)",
                      "function wrapperMaxTokenAmount(address wrapper) view returns (uint256)",
                      "function wrapperMintFeeRate(address wrapper) view returns (int256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x9aef431c2d6751ff8f3b8562f0ad50eb3aad2cbfbb07d55007b08ad9499a8102",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemStatus": {
                    "address": "0x2ef042dbd14560074225dF68f16Aa729DCd1382B",
                    "sourceName": "contracts/SystemStatus.sol",
                    "contractName": "SystemStatus",
                    "abi": [
                      "constructor(address _owner)",
                      "event AccessControlUpdated(bytes32 indexed section, address indexed account, bool canSuspend, bool canResume)",
                      "event ExchangeResumed(uint256 reason)",
                      "event ExchangeSuspended(uint256 reason)",
                      "event FuturesMarketResumed(bytes32 marketKey, uint256 reason)",
                      "event FuturesMarketSuspended(bytes32 marketKey, uint256 reason)",
                      "event FuturesResumed(uint256 reason)",
                      "event FuturesSuspended(uint256 reason)",
                      "event IssuanceResumed(uint256 reason)",
                      "event IssuanceSuspended(uint256 reason)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SynthExchangeResumed(bytes32 currencyKey, uint256 reason)",
                      "event SynthExchangeSuspended(bytes32 currencyKey, uint256 reason)",
                      "event SynthResumed(bytes32 currencyKey, uint256 reason)",
                      "event SynthSuspended(bytes32 currencyKey, uint256 reason)",
                      "event SystemResumed(uint256 reason)",
                      "event SystemSuspended(uint256 reason)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function SECTION_EXCHANGE() view returns (bytes32)",
                      "function SECTION_FUTURES() view returns (bytes32)",
                      "function SECTION_ISSUANCE() view returns (bytes32)",
                      "function SECTION_SYNTH() view returns (bytes32)",
                      "function SECTION_SYNTH_EXCHANGE() view returns (bytes32)",
                      "function SECTION_SYSTEM() view returns (bytes32)",
                      "function SUSPENSION_REASON_UPGRADE() view returns (uint248)",
                      "function acceptOwnership()",
                      "function accessControl(bytes32, address) view returns (bool canSuspend, bool canResume)",
                      "function exchangeSuspension() view returns (bool suspended, uint248 reason)",
                      "function futuresMarketSuspension(bytes32) view returns (bool suspended, uint248 reason)",
                      "function futuresSuspension() view returns (bool suspended, uint248 reason)",
                      "function getFuturesMarketSuspensions(bytes32[] marketKeys) view returns (bool[] suspensions, uint256[] reasons)",
                      "function getSynthExchangeSuspensions(bytes32[] synths) view returns (bool[] exchangeSuspensions, uint256[] reasons)",
                      "function getSynthSuspensions(bytes32[] synths) view returns (bool[] suspensions, uint256[] reasons)",
                      "function isSystemUpgrading() view returns (bool)",
                      "function issuanceSuspension() view returns (bool suspended, uint248 reason)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function requireExchangeActive() view",
                      "function requireExchangeBetweenSynthsAllowed(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view",
                      "function requireFuturesActive() view",
                      "function requireFuturesMarketActive(bytes32 marketKey) view",
                      "function requireIssuanceActive() view",
                      "function requireSynthActive(bytes32 currencyKey) view",
                      "function requireSynthExchangeActive(bytes32 currencyKey) view",
                      "function requireSynthsActive(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view",
                      "function requireSystemActive() view",
                      "function resumeExchange()",
                      "function resumeFutures()",
                      "function resumeFuturesMarket(bytes32 marketKey)",
                      "function resumeFuturesMarkets(bytes32[] marketKeys)",
                      "function resumeIssuance()",
                      "function resumeSynth(bytes32 currencyKey)",
                      "function resumeSynthExchange(bytes32 currencyKey)",
                      "function resumeSynths(bytes32[] currencyKeys)",
                      "function resumeSynthsExchange(bytes32[] currencyKeys)",
                      "function resumeSystem()",
                      "function suspendExchange(uint256 reason)",
                      "function suspendFutures(uint256 reason)",
                      "function suspendFuturesMarket(bytes32 marketKey, uint256 reason)",
                      "function suspendFuturesMarkets(bytes32[] marketKeys, uint256 reason)",
                      "function suspendIssuance(uint256 reason)",
                      "function suspendSynth(bytes32 currencyKey, uint256 reason)",
                      "function suspendSynthExchange(bytes32 currencyKey, uint256 reason)",
                      "function suspendSynths(bytes32[] currencyKeys, uint256 reason)",
                      "function suspendSynthsExchange(bytes32[] currencyKeys, uint256 reason)",
                      "function suspendSystem(uint256 reason)",
                      "function synthExchangeSuspension(bytes32) view returns (bool suspended, uint248 reason)",
                      "function synthSuspended(bytes32 currencyKey) view returns (bool)",
                      "function synthSuspension(bytes32) view returns (bool suspended, uint248 reason)",
                      "function systemSuspended() view returns (bool)",
                      "function systemSuspension() view returns (bool suspended, uint248 reason)",
                      "function updateAccessControl(bytes32 section, address account, bool canSuspend, bool canResume)",
                      "function updateAccessControls(bytes32[] sections, address[] accounts, bool[] canSuspends, bool[] canResumes)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x5161eb2622be01080df9fb0cceaadc2596a794d8d4d7ce9d66ca46fe2cda2286",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeRates": {
                    "address": "0xFf15AF9219D74ABD40a97537Db0EfcC6eE77040b",
                    "sourceName": "contracts/ExchangeRatesWithDexPricing.sol",
                    "contractName": "ExchangeRatesWithDexPricing",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event AggregatorAdded(bytes32 currencyKey, address aggregator)",
                      "event AggregatorRemoved(bytes32 currencyKey, address aggregator)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DexPriceAggregatorUpdated(address newDexPriceAggregator)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function addAggregator(bytes32 currencyKey, address aggregatorAddress)",
                      "function aggregatorKeys(uint256) view returns (bytes32)",
                      "function aggregatorWarningFlags() view returns (address)",
                      "function aggregators(bytes32) view returns (address)",
                      "function anyRateIsInvalid(bytes32[] currencyKeys) view returns (bool)",
                      "function anyRateIsInvalidAtRound(bytes32[] currencyKeys, uint256[] roundIds) view returns (bool)",
                      "function currenciesUsingAggregator(address aggregator) view returns (bytes32[] currencies)",
                      "function currencyKeyDecimals(bytes32) view returns (uint8)",
                      "function dexPriceAggregator() view returns (address)",
                      "function effectiveAtomicValueAndRates(bytes32 sourceCurrencyKey, uint256 amount, bytes32 destinationCurrencyKey) view returns (uint256 value, uint256 systemValue, uint256 systemSourceRate, uint256 systemDestinationRate)",
                      "function effectiveAtomicValueAndRates(tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) sourceSettings, uint256 sourceAmount, tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) destinationSettings, tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) usdSettings) view returns (uint256 value, uint256 systemValue, uint256 systemSourceRate, uint256 systemDestinationRate)",
                      "function effectiveValue(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey) view returns (uint256 value)",
                      "function effectiveValueAndRates(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey) view returns (uint256 value, uint256 sourceRate, uint256 destinationRate)",
                      "function effectiveValueAndRatesAtRound(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, uint256 roundIdForSrc, uint256 roundIdForDest) view returns (uint256 value, uint256 sourceRate, uint256 destinationRate)",
                      "function getCurrentRoundId(bytes32 currencyKey) view returns (uint256)",
                      "function getLastRoundIdBeforeElapsedSecs(bytes32 currencyKey, uint256 startingRoundId, uint256 startingTimestamp, uint256 timediff) view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function lastRateUpdateTimes(bytes32 currencyKey) view returns (uint256)",
                      "function lastRateUpdateTimesForCurrencies(bytes32[] currencyKeys) view returns (uint256[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rateAndInvalid(bytes32 currencyKey) view returns (uint256 rate, bool isInvalid)",
                      "function rateAndTimestampAtRound(bytes32 currencyKey, uint256 roundId) view returns (uint256 rate, uint256 time)",
                      "function rateAndUpdatedTime(bytes32 currencyKey) view returns (uint256 rate, uint256 time)",
                      "function rateForCurrency(bytes32 currencyKey) view returns (uint256)",
                      "function rateIsFlagged(bytes32 currencyKey) view returns (bool)",
                      "function rateIsInvalid(bytes32 currencyKey) view returns (bool)",
                      "function rateIsStale(bytes32 currencyKey) view returns (bool)",
                      "function rateStalePeriod() view returns (uint256)",
                      "function rateWithSafetyChecks(bytes32 currencyKey) returns (uint256 rate, bool broken, bool staleOrInvalid)",
                      "function ratesAndInvalidForCurrencies(bytes32[] currencyKeys) view returns (uint256[] rates, bool anyRateInvalid)",
                      "function ratesAndUpdatedTimeForCurrencyLastNRounds(bytes32 currencyKey, uint256 numRounds, uint256 roundId) view returns (uint256[] rates, uint256[] times)",
                      "function ratesForCurrencies(bytes32[] currencyKeys) view returns (uint256[])",
                      "function rebuildCache()",
                      "function removeAggregator(bytes32 currencyKey)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setDexPriceAggregator(address _dexPriceAggregator)",
                      "function synthTooVolatileForAtomicExchange(bytes32 currencyKey) view returns (bool)",
                      "function synthTooVolatileForAtomicExchange(tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) settings) view returns (bool)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x4c264fa01a974709b8572e30492d04ea901b82ae8548a7105303bd93ed78bf6b",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStateSynthetix": {
                    "address": "0xfEDB3BeEc7283c93d12C3b56f70C39AbAD776831",
                    "sourceName": "contracts/legacy/LegacyTokenState.sol",
                    "contractName": "LegacyTokenState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address _associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function allowance(address, address) view returns (uint256)",
                      "function associatedContract() view returns (address)",
                      "function balanceOf(address) view returns (uint256)",
                      "function nominateOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAllowance(address tokenOwner, address spender, uint256 value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBalanceOf(address account, uint256 value)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x16b9b899e7e8f6c67bc2eaaa1a928a2933ae91678d18c0e3b350b146476f3788",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxySynthetix": {
                    "address": "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
                    "sourceName": "contracts/ProxyERC20.sol",
                    "contractName": "ProxyERC20",
                    "abi": [
                      "constructor(address _owner)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function symbol() view returns (string)",
                      "function target() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x86617bcb814f8175321a83f1024dd9ab66e3eb8a97e1ce04803feaf619c33dab",
                    "deployedOn": "run.synthetix"
                  },
                  "Synthetix": {
                    "address": "0x29Ba9b0C440CE9e7B0E46138B5Fda83c22467006",
                    "sourceName": "contracts/Synthetix.sol",
                    "contractName": "Synthetix",
                    "abi": [
                      "constructor(address _proxy, address _tokenState, address _owner, uint256 _totalSupply, address _resolver)",
                      "event AccountLiquidated(address indexed account, uint256 snxRedeemed, uint256 amountLiquidated, address liquidator)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event AtomicSynthExchange(address indexed account, bytes32 fromCurrencyKey, uint256 fromAmount, bytes32 toCurrencyKey, uint256 toAmount, address toAddress)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event ExchangeRebate(address indexed account, bytes32 currencyKey, uint256 amount)",
                      "event ExchangeReclaim(address indexed account, bytes32 currencyKey, uint256 amount)",
                      "event ExchangeTracking(bytes32 indexed trackingCode, bytes32 toCurrencyKey, uint256 toAmount, uint256 fee)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ProxyUpdated(address proxyAddress)",
                      "event SynthExchange(address indexed account, bytes32 fromCurrencyKey, uint256 fromAmount, bytes32 toCurrencyKey, uint256 toAmount, address toAddress)",
                      "event TokenStateUpdated(address newTokenState)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function DECIMALS() view returns (uint8)",
                      "function TOKEN_NAME() view returns (string)",
                      "function TOKEN_SYMBOL() view returns (string)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function anySynthOrSNXRateIsInvalid() view returns (bool anyRateInvalid)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function availableCurrencyKeys() view returns (bytes32[])",
                      "function availableSynthCount() view returns (uint256)",
                      "function availableSynths(uint256 index) view returns (address)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function burnSecondary(address, uint256)",
                      "function burnSynths(uint256 amount)",
                      "function burnSynthsOnBehalf(address burnForAddress, uint256 amount)",
                      "function burnSynthsToTarget()",
                      "function burnSynthsToTargetOnBehalf(address burnForAddress)",
                      "function collateral(address account) view returns (uint256)",
                      "function collateralisationRatio(address _issuer) view returns (uint256)",
                      "function debtBalanceOf(address account, bytes32 currencyKey) view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function emitAtomicSynthExchange(address account, bytes32 fromCurrencyKey, uint256 fromAmount, bytes32 toCurrencyKey, uint256 toAmount, address toAddress)",
                      "function emitExchangeRebate(address account, bytes32 currencyKey, uint256 amount)",
                      "function emitExchangeReclaim(address account, bytes32 currencyKey, uint256 amount)",
                      "function emitExchangeTracking(bytes32 trackingCode, bytes32 toCurrencyKey, uint256 toAmount, uint256 fee)",
                      "function emitSynthExchange(address account, bytes32 fromCurrencyKey, uint256 fromAmount, bytes32 toCurrencyKey, uint256 toAmount, address toAddress)",
                      "function exchange(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey) returns (uint256 amountReceived)",
                      "function exchangeAtomically(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, bytes32 trackingCode, uint256 minAmount) returns (uint256 amountReceived)",
                      "function exchangeOnBehalf(address exchangeForAddress, bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey) returns (uint256 amountReceived)",
                      "function exchangeOnBehalfWithTracking(address exchangeForAddress, bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, address rewardAddress, bytes32 trackingCode) returns (uint256 amountReceived)",
                      "function exchangeWithTracking(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, address rewardAddress, bytes32 trackingCode) returns (uint256 amountReceived)",
                      "function exchangeWithTrackingForInitiator(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, address rewardAddress, bytes32 trackingCode) returns (uint256 amountReceived)",
                      "function exchangeWithVirtual(bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, bytes32 trackingCode) returns (uint256 amountReceived, address vSynth)",
                      "function getFirstNonZeroEscrowIndex(address account) view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function isWaitingPeriod(bytes32 currencyKey) view returns (bool)",
                      "function issueMaxSynths()",
                      "function issueMaxSynthsOnBehalf(address issueForAddress)",
                      "function issueSynths(uint256 amount)",
                      "function issueSynthsOnBehalf(address issueForAddress, uint256 amount)",
                      "function liquidateDelinquentAccount(address account) returns (bool)",
                      "function liquidateDelinquentAccountEscrowIndex(address account, uint256 escrowStartIndex) returns (bool)",
                      "function liquidateSelf() returns (bool)",
                      "function maxIssuableSynths(address account) view returns (uint256 maxIssuable)",
                      "function messageSender() view returns (address)",
                      "function migrateAccountBalances(address account) returns (uint256 totalEscrowRevoked, uint256 totalLiquidBalance)",
                      "function migrateEscrowBalanceToRewardEscrowV2()",
                      "function migrateEscrowContractBalance()",
                      "function mint() returns (bool)",
                      "function mintSecondary(address, uint256)",
                      "function mintSecondaryRewards(uint256)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function remainingIssuableSynths(address account) view returns (uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function sUSD() view returns (bytes32)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function setTokenState(address _tokenState)",
                      "function settle(bytes32 currencyKey) returns (uint256 reclaimed, uint256 refunded, uint256 numEntriesSettled)",
                      "function symbol() view returns (string)",
                      "function synths(bytes32 currencyKey) view returns (address)",
                      "function synthsByAddress(address synthAddress) view returns (bytes32)",
                      "function tokenState() view returns (address)",
                      "function totalIssuedSynths(bytes32 currencyKey) view returns (uint256)",
                      "function totalIssuedSynthsExcludeOtherCollateral(bytes32 currencyKey) view returns (uint256)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)",
                      "function transferableSynthetix(address account) view returns (uint256 transferable)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x229b106594e14e6c756730f590fd7566080c90ce314d026e01a427afff7c40fd",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardEscrow": {
                    "address": "0x7CA45F1C7DE9395249822d89de10b044eFCe85b9",
                    "sourceName": "contracts/RewardEscrow.sol",
                    "contractName": "RewardEscrow",
                    "abi": [
                      "constructor(address _owner, address _synthetix, address _feePool)",
                      "event FeePoolUpdated(address newFeePool)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SynthetixUpdated(address newSynthetix)",
                      "event Vested(address indexed beneficiary, uint256 time, uint256 value)",
                      "event VestingEntryCreated(address indexed beneficiary, uint256 time, uint256 value)",
                      "function MAX_VESTING_ENTRIES() view returns (uint256)",
                      "function acceptOwnership()",
                      "function appendVestingEntry(address account, uint256 quantity)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function checkAccountSchedule(address account) view returns (uint256[520])",
                      "function feePool() view returns (address)",
                      "function getNextVestingEntry(address account) view returns (uint256[2])",
                      "function getNextVestingIndex(address account) view returns (uint256)",
                      "function getNextVestingQuantity(address account) view returns (uint256)",
                      "function getNextVestingTime(address account) view returns (uint256)",
                      "function getVestingQuantity(address account, uint256 index) view returns (uint256)",
                      "function getVestingScheduleEntry(address account, uint256 index) view returns (uint256[2])",
                      "function getVestingTime(address account, uint256 index) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function numVestingEntries(address account) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function setFeePool(address _feePool)",
                      "function setSynthetix(address _synthetix)",
                      "function synthetix() view returns (address)",
                      "function totalEscrowedAccountBalance(address) view returns (uint256)",
                      "function totalEscrowedBalance() view returns (uint256)",
                      "function totalVestedAccountBalance(address) view returns (uint256)",
                      "function vest()",
                      "function vestingSchedules(address, uint256, uint256) view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x3e9a6acc69fa2565b6679b5ea90bb4fb74715d54d81cf00c0eaffce9160adf0e",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardEscrowV2Storage": {
                    "address": "0xCC8753eBE72ea01AC7c789fb5A869aA2562f56E8",
                    "sourceName": "contracts/RewardEscrowV2Storage.sol",
                    "contractName": "RewardEscrowV2Storage",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function accountVestingEntryIDs(address account, uint256 index) view returns (uint256)",
                      "function addVestingEntry(address account, tuple(uint64 endTime, uint256 escrowAmount) entry) returns (uint256)",
                      "function associatedContract() view returns (address)",
                      "function fallbackRewardEscrow() view returns (address)",
                      "function firstNonFallbackId() view returns (uint256)",
                      "function nextEntryId() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function numVestingEntries(address account) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setFallbackRewardEscrow(address _fallbackRewardEscrow)",
                      "function setZeroAmount(address account, uint256 entryId)",
                      "function setZeroAmountUntilTarget(address account, uint256 startIndex, uint256 targetAmount) returns (uint256 total, uint256 endIndex, uint256 lastEntryTime)",
                      "function totalEscrowedAccountBalance(address account) view returns (uint256)",
                      "function totalEscrowedBalance() view returns (uint256)",
                      "function totalVestedAccountBalance(address account) view returns (uint256)",
                      "function updateEscrowAccountBalance(address account, int256 delta)",
                      "function updateTotalEscrowedBalance(int256 delta)",
                      "function updateVestedAccountBalance(address account, int256 delta)",
                      "function vestingSchedules(address account, uint256 entryId) view returns (tuple(uint64 endTime, uint256 escrowAmount) entry)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xc50dca62eac9c41159ea9d820540dbfa04175c0de365b8b404e561fc56bee1dc",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardEscrowV2": {
                    "address": "0xF130DEC302611Ea8Dd671cd9270c406870AC56cd",
                    "sourceName": "contracts/RewardEscrowV2.sol",
                    "contractName": "RewardEscrowV2",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event AccountMerged(address indexed accountToMerge, address destinationAddress, uint256 escrowAmountMerged, uint256[] entryIDs, uint256 time)",
                      "event AccountMergingDurationUpdated(uint256 newDuration)",
                      "event AccountMergingStarted(uint256 time, uint256 endTime)",
                      "event BurnedForMigrationToL2(address indexed account, uint256[] entryIDs, uint256 escrowedAmountMigrated, uint256 time)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event MaxAccountMergingDurationUpdated(uint256 newDuration)",
                      "event MaxEscrowDurationUpdated(uint256 newDuration)",
                      "event NominateAccountToMerge(address indexed account, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Revoked(address indexed account, address indexed recipient, uint256 targetAmount, uint256 startIndex, uint256 endIndex)",
                      "event Vested(address indexed beneficiary, uint256 time, uint256 value)",
                      "event VestingEntryCreated(address indexed beneficiary, uint256 time, uint256 value, uint256 duration, uint256 entryID)",
                      "function acceptOwnership()",
                      "function accountMergingDuration() view returns (uint256)",
                      "function accountMergingIsOpen() view returns (bool)",
                      "function accountMergingStartTime() view returns (uint256)",
                      "function accountVestingEntryIDs(address account, uint256 index) view returns (uint256)",
                      "function appendVestingEntry(address account, uint256 quantity, uint256 duration)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function burnForMigration(address account, uint256[] entryIDs) returns (uint256 escrowedAccountBalance, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                      "function createEscrowEntry(address beneficiary, uint256 deposit, uint256 duration)",
                      "function getAccountVestingEntryIDs(address account, uint256 index, uint256 pageSize) view returns (uint256[])",
                      "function getVestingEntry(address account, uint256 entryID) view returns (uint64 endTime, uint256 escrowAmount)",
                      "function getVestingEntryClaimable(address account, uint256 entryID) view returns (uint256)",
                      "function getVestingQuantity(address account, uint256[] entryIDs) view returns (uint256 total)",
                      "function getVestingSchedules(address account, uint256 index, uint256 pageSize) view returns (tuple(uint64 endTime, uint256 escrowAmount, uint256 entryID)[])",
                      "function importVestingEntries(address, uint256, tuple(uint64 endTime, uint256 escrowAmount)[])",
                      "function isResolverCached() view returns (bool)",
                      "function maxAccountMergingDuration() view returns (uint256)",
                      "function max_duration() view returns (uint256)",
                      "function mergeAccount(address from, uint256[] entryIDs)",
                      "function migrateAccountEscrowBalances(address[], uint256[], uint256[])",
                      "function migrateVestingSchedule(address)",
                      "function nextEntryId() view returns (uint256)",
                      "function nominateAccountToMerge(address account)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function nominatedReceiver(address) view returns (address)",
                      "function numVestingEntries(address account) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function permittedEscrowCreators(address) view returns (bool)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function revokeFrom(address account, address recipient, uint256 targetAmount, uint256 startIndex)",
                      "function setAccountMergingDuration(uint256 duration)",
                      "function setMaxAccountMergingWindow(uint256 duration)",
                      "function setMaxEscrowDuration(uint256 duration)",
                      "function setPermittedEscrowCreator(address creator, bool permitted)",
                      "function setupExpiryTime() view returns (uint256)",
                      "function startMergingWindow()",
                      "function totalEscrowedAccountBalance(address account) view returns (uint256)",
                      "function totalEscrowedBalance() view returns (uint256)",
                      "function totalVestedAccountBalance(address account) view returns (uint256)",
                      "function vest(uint256[] entryIDs)",
                      "function vestingSchedules(address account, uint256 entryId) view returns (tuple(uint64 endTime, uint256 escrowAmount))"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xe4d4906c0d2ed46013730c3ae11de1df7d9a9a0f5815df567908f6f3dd2d4466",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixEscrow": {
                    "address": "0xc2e7B0B527a9A265fb3DD562B6D4e1673b381d10",
                    "sourceName": "contracts/SynthetixEscrow.sol",
                    "contractName": "SynthetixEscrow",
                    "abi": [
                      "constructor(address _owner, address _synthetix)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SynthetixUpdated(address newSynthetix)",
                      "event Vested(address indexed beneficiary, uint256 time, uint256 value)",
                      "function MAX_VESTING_ENTRIES() view returns (uint256)",
                      "function QUANTITY_INDEX() view returns (uint256)",
                      "function TIME_INDEX() view returns (uint256)",
                      "function acceptOwnership()",
                      "function addVestingSchedule(address account, uint256[] times, uint256[] quantities)",
                      "function appendVestingEntry(address account, uint256 time, uint256 quantity)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function getNextVestingEntry(address account) view returns (uint256[2])",
                      "function getNextVestingIndex(address account) view returns (uint256)",
                      "function getNextVestingQuantity(address account) view returns (uint256)",
                      "function getNextVestingTime(address account) view returns (uint256)",
                      "function getVestingQuantity(address account, uint256 index) view returns (uint256)",
                      "function getVestingScheduleEntry(address account, uint256 index) view returns (uint256[2])",
                      "function getVestingTime(address account, uint256 index) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function numVestingEntries(address account) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function purgeAccount(address account)",
                      "function setSynthetix(address _synthetix)",
                      "function setupExpiryTime() view returns (uint256)",
                      "function synthetix() view returns (address)",
                      "function totalVestedAccountBalance(address) view returns (uint256)",
                      "function totalVestedBalance() view returns (uint256)",
                      "function vest()",
                      "function vestingSchedules(address, uint256, uint256) view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xcdb927b099e78d2b9dbadfa4b8bc3442ea000c0440c204f49d2192233292b559",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixState": {
                    "address": "0x1CaBb2F18c4D4566d517b74F7C398efbC35Bf966",
                    "sourceName": "contracts/legacy/SynthetixState.sol",
                    "contractName": "SynthetixState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function appendDebtLedgerValue(uint256 value)",
                      "function associatedContract() view returns (address)",
                      "function clearIssuanceData(address account)",
                      "function debtLedger(uint256) view returns (uint256)",
                      "function debtLedgerLength() view returns (uint256)",
                      "function decrementTotalIssuerCount()",
                      "function hasIssued(address account) view returns (bool)",
                      "function incrementTotalIssuerCount()",
                      "function issuanceData(address) view returns (uint256 initialDebtOwnership, uint256 debtEntryIndex)",
                      "function lastDebtLedgerEntry() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setCurrentIssuanceData(address account, uint256 initialDebtOwnership)",
                      "function totalIssuerCount() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x15d3779db1486ad9a162ffe6356cf1e80e1cbd1731fdea5176442ea7d4b9c320",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixDebtShare": {
                    "address": "0x4C76acD6Be797642E284c1beF859fBC79C39Df04",
                    "sourceName": "contracts/SynthetixDebtShare.sol",
                    "contractName": "SynthetixDebtShare",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event Burn(address indexed account, uint256 amount)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event ChangeAuthorizedBroker(address indexed authorizedBroker, bool authorized)",
                      "event ChangeAuthorizedToSnapshot(address indexed authorizedToSnapshot, bool authorized)",
                      "event Mint(address indexed account, uint256 amount)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function addAuthorizedBroker(address target)",
                      "function addAuthorizedToSnapshot(address target)",
                      "function allowance(address, address spender) view returns (uint256)",
                      "function approve(address, uint256) pure returns (bool)",
                      "function authorizedBrokers(address) view returns (bool)",
                      "function authorizedToSnapshot(address) view returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function balanceOfOnPeriod(address account, uint256 periodId) view returns (uint256)",
                      "function balances(address, uint256) view returns (uint128 amount, uint128 periodId)",
                      "function burnShare(address account, uint256 amount)",
                      "function currentPeriodId() view returns (uint128)",
                      "function decimals() view returns (uint8)",
                      "function finishSetup()",
                      "function importAddresses(address[] accounts, uint256[] amounts)",
                      "function isInitialized() view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function mintShare(address account, uint256 amount)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function removeAuthorizedBroker(address target)",
                      "function removeAuthorizedToSnapshot(address target)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function sharePercent(address account) view returns (uint256)",
                      "function sharePercentOnPeriod(address account, uint256 periodId) view returns (uint256)",
                      "function symbol() view returns (string)",
                      "function takeSnapshot(uint128 id)",
                      "function totalSupply() view returns (uint256)",
                      "function totalSupplyOnPeriod(uint256) view returns (uint256)",
                      "function transfer(address, uint256) pure returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x1022ec79c646191394a14889c2d9bfe0a4212a649a903294371ab0398e8cac52",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxyFeePool": {
                    "address": "0x00e793B4ad1eCf68e660BB798c16a2Ea438C0A29",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function target() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x08602eb85e81956586d8554bdbf02f2fd477ed03d4e63cf69f9095948e7e1a99",
                    "deployedOn": "run.synthetix"
                  },
                  "DelegateApprovalsEternalStorage": {
                    "address": "0xD21624ca16F9C57f2ceF3d046eB7D7cAf5f54cB4",
                    "sourceName": "contracts/EternalStorage.sol",
                    "contractName": "EternalStorage",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function associatedContract() view returns (address)",
                      "function deleteAddressValue(bytes32 record)",
                      "function deleteBooleanValue(bytes32 record)",
                      "function deleteBytes32Value(bytes32 record)",
                      "function deleteBytesValue(bytes32 record)",
                      "function deleteIntValue(bytes32 record)",
                      "function deleteStringValue(bytes32 record)",
                      "function deleteUIntValue(bytes32 record)",
                      "function getAddressValue(bytes32 record) view returns (address)",
                      "function getBooleanValue(bytes32 record) view returns (bool)",
                      "function getBytes32Value(bytes32 record) view returns (bytes32)",
                      "function getBytesValue(bytes32 record) view returns (bytes)",
                      "function getIntValue(bytes32 record) view returns (int256)",
                      "function getStringValue(bytes32 record) view returns (string)",
                      "function getUIntValue(bytes32 record) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAddressValue(bytes32 record, address value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBooleanValue(bytes32 record, bool value)",
                      "function setBytes32Value(bytes32 record, bytes32 value)",
                      "function setBytesValue(bytes32 record, bytes value)",
                      "function setIntValue(bytes32 record, int256 value)",
                      "function setStringValue(bytes32 record, string value)",
                      "function setUIntValue(bytes32 record, uint256 value)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x343f5a0c32a1fa57d2bb04661722d343657b68b70eb018d373ad05982ef2e72a",
                    "deployedOn": "run.synthetix"
                  },
                  "DelegateApprovals": {
                    "address": "0x439129f9458ccADbEb3418520E4d7346895692D3",
                    "sourceName": "contracts/DelegateApprovals.sol",
                    "contractName": "DelegateApprovals",
                    "abi": [
                      "constructor(address _owner, address _eternalStorage)",
                      "event Approval(address indexed authoriser, address delegate, bytes32 action)",
                      "event EternalStorageUpdated(address newEternalStorage)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event WithdrawApproval(address indexed authoriser, address delegate, bytes32 action)",
                      "function APPROVE_ALL() view returns (bytes32)",
                      "function BURN_FOR_ADDRESS() view returns (bytes32)",
                      "function CLAIM_FOR_ADDRESS() view returns (bytes32)",
                      "function EXCHANGE_FOR_ADDRESS() view returns (bytes32)",
                      "function ISSUE_FOR_ADDRESS() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function approveAllDelegatePowers(address delegate)",
                      "function approveBurnOnBehalf(address delegate)",
                      "function approveClaimOnBehalf(address delegate)",
                      "function approveExchangeOnBehalf(address delegate)",
                      "function approveIssueOnBehalf(address delegate)",
                      "function approvedAll(address authoriser, address delegate) view returns (bool)",
                      "function canBurnFor(address authoriser, address delegate) view returns (bool)",
                      "function canClaimFor(address authoriser, address delegate) view returns (bool)",
                      "function canExchangeFor(address authoriser, address delegate) view returns (bool)",
                      "function canIssueFor(address authoriser, address delegate) view returns (bool)",
                      "function eternalStorage() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeAllDelegatePowers(address delegate)",
                      "function removeBurnOnBehalf(address delegate)",
                      "function removeClaimOnBehalf(address delegate)",
                      "function removeExchangeOnBehalf(address delegate)",
                      "function removeIssueOnBehalf(address delegate)",
                      "function setEternalStorage(address _eternalStorage)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x644836e8747474fad7f7ec2c4e8c4c5c7409903b79084cf23e87844e305734ec",
                    "deployedOn": "run.synthetix"
                  },
                  "Liquidator": {
                    "address": "0xD59B850F442aECD66cc78663b91D7A7Ee46ef3fD",
                    "sourceName": "contracts/Liquidator.sol",
                    "contractName": "Liquidator",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event AccountFlaggedForLiquidation(address indexed account, uint256 deadline)",
                      "event AccountRemovedFromLiquidation(address indexed account, uint256 time)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function LIQUIDATION_CALLER() view returns (bytes32)",
                      "function LIQUIDATION_DEADLINE() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function calculateAmountToFixCollateral(uint256 debtBalance, uint256 collateral, uint256 penalty) view returns (uint256)",
                      "function checkAndRemoveAccountInLiquidation(address account)",
                      "function flagAccountForLiquidation(address account)",
                      "function flagReward() view returns (uint256)",
                      "function getLiquidationCallerForAccount(address account) view returns (address)",
                      "function getLiquidationDeadlineForAccount(address account) view returns (uint256)",
                      "function isLiquidationDeadlinePassed(address account) view returns (bool)",
                      "function isLiquidationOpen(address account, bool isSelfLiquidation) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function issuanceRatio() view returns (uint256)",
                      "function liquidateReward() view returns (uint256)",
                      "function liquidationAmounts(address account, bool isSelfLiquidation) view returns (uint256 totalRedeemed, uint256 debtToRemove, uint256 escrowToLiquidate, uint256 initialDebtBalance)",
                      "function liquidationCollateralRatio() view returns (uint256)",
                      "function liquidationDelay() view returns (uint256)",
                      "function liquidationEscrowDuration() view returns (uint256)",
                      "function liquidationPenalty() view returns (uint256)",
                      "function liquidationRatio() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function removeAccountInLiquidation(address account)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function selfLiquidationPenalty() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x63973e7a8e06b350a0b5011a92b025a6f5acff8d1caad41e90228d76abc03fba",
                    "deployedOn": "run.synthetix"
                  },
                  "LiquidatorRewards": {
                    "address": "0xF929965a6BcF6F279031AB314D609b54CDa073a1",
                    "sourceName": "contracts/LiquidatorRewards.sol",
                    "contractName": "LiquidatorRewards",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RewardPaid(address indexed user, uint256 reward)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function accumulatedRewardsPerShare() view returns (uint256)",
                      "function earned(address account) view returns (uint256)",
                      "function entries(address) view returns (uint128 claimable, uint128 entryAccumulatedRewards)",
                      "function getReward(address account)",
                      "function initiated(address) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notifyRewardAmount(uint256 reward)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function updateEntry(address account)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x0d1c71b3ba9e0256ffa0f8c3f70a88f15a45dd63e1d3cc2ef1680f6b2f04ae26",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePoolEternalStorage": {
                    "address": "0xa0Ea9B6C544E4Df1351D1DEe426A70c4154F0D03",
                    "sourceName": "contracts/FeePoolEternalStorage.sol",
                    "contractName": "FeePoolEternalStorage",
                    "abi": [
                      "constructor(address _owner, address _feePool)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function associatedContract() view returns (address)",
                      "function deleteAddressValue(bytes32 record)",
                      "function deleteBooleanValue(bytes32 record)",
                      "function deleteBytes32Value(bytes32 record)",
                      "function deleteBytesValue(bytes32 record)",
                      "function deleteIntValue(bytes32 record)",
                      "function deleteStringValue(bytes32 record)",
                      "function deleteUIntValue(bytes32 record)",
                      "function getAddressValue(bytes32 record) view returns (address)",
                      "function getBooleanValue(bytes32 record) view returns (bool)",
                      "function getBytes32Value(bytes32 record) view returns (bytes32)",
                      "function getBytesValue(bytes32 record) view returns (bytes)",
                      "function getIntValue(bytes32 record) view returns (int256)",
                      "function getStringValue(bytes32 record) view returns (string)",
                      "function getUIntValue(bytes32 record) view returns (uint256)",
                      "function importFeeWithdrawalData(address[] accounts, uint256[] feePeriodIDs)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAddressValue(bytes32 record, address value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBooleanValue(bytes32 record, bool value)",
                      "function setBytes32Value(bytes32 record, bytes32 value)",
                      "function setBytesValue(bytes32 record, bytes value)",
                      "function setIntValue(bytes32 record, int256 value)",
                      "function setStringValue(bytes32 record, string value)",
                      "function setUIntValue(bytes32 record, uint256 value)",
                      "function setupExpiryTime() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x407912b1d6f86b7ff2a7018fe5dcd8dfec661452730bfd1260a163d679ff07f4",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePool": {
                    "address": "0x9F9c27B91fCC32F41787dD4486411D1d5a21839D",
                    "sourceName": "contracts/FeePool.sol",
                    "contractName": "FeePool",
                    "abi": [
                      "constructor(address _proxy, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FeePeriodClosed(uint256 feePeriodId)",
                      "event FeesClaimed(address account, uint256 sUSDAmount, uint256 snxRewards)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function FEE_ADDRESS() view returns (address)",
                      "function FEE_PERIOD_LENGTH() view returns (uint8)",
                      "function acceptOwnership()",
                      "function allNetworksDebtSharesSupply() view returns (uint256 sharesSupply, uint256 updatedAt)",
                      "function allNetworksSnxBackedDebt() view returns (uint256 debt, uint256 updatedAt)",
                      "function claimFees() returns (bool)",
                      "function claimOnBehalf(address claimingForAddress) returns (bool)",
                      "function closeCurrentFeePeriod()",
                      "function closeSecondary(uint256 allNetworksSnxBackedDebt, uint256 allNetworksDebtSharesSupply)",
                      "function effectiveDebtRatioForPeriod(address account, uint256 period) view returns (uint256)",
                      "function feePeriodDuration() view returns (uint256)",
                      "function feesAvailable(address account) view returns (uint256, uint256)",
                      "function feesBurned(address account) view returns (uint256)",
                      "function feesByPeriod(address account) view returns (uint256[2][2] results)",
                      "function feesToBurn(address account) view returns (uint256 feesFromPeriod)",
                      "function getLastFeeWithdrawal(address _claimingAddress) view returns (uint256)",
                      "function getPenaltyThresholdRatio() view returns (uint256)",
                      "function importFeePeriod(uint256 feePeriodIndex, uint256 feePeriodId, uint256 startTime, uint256 feesToDistribute, uint256 feesClaimed, uint256 rewardsToDistribute, uint256 rewardsClaimed)",
                      "function isFeesClaimable(address account) view returns (bool feesClaimable)",
                      "function isResolverCached() view returns (bool)",
                      "function issuanceRatio() view returns (uint256)",
                      "function messageSender() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recentFeePeriods(uint256 index) view returns (uint64 feePeriodId, uint64 unused, uint64 startTime, uint256 feesToDistribute, uint256 feesClaimed, uint256 rewardsToDistribute, uint256 rewardsClaimed)",
                      "function recordFeePaid(uint256 amount)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function setRewardsToDistribute(uint256 amount)",
                      "function setupExpiryTime() view returns (uint256)",
                      "function targetThreshold() view returns (uint256)",
                      "function totalFeesAvailable() view returns (uint256)",
                      "function totalFeesBurned() view returns (uint256)",
                      "function totalRewardsAvailable() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xdf9c42b431c8dc3492f01bfa63b18fe84e6f532fc812182dcdee4b2a19a5a848",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePoolState": {
                    "address": "0xb4C66de59305d01A3c078eD52F5CfA1Cb6e7EA03",
                    "sourceName": "contracts/legacy/FeePoolState.sol",
                    "contractName": "FeePoolState",
                    "abi": [
                      "constructor(address _owner, address _feePool)",
                      "event IssuanceDebtRatioEntry(address indexed account, uint256 debtRatio, uint256 feePeriodCloseIndex)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function FEE_PERIOD_LENGTH() view returns (uint8)",
                      "function acceptOwnership()",
                      "function accountIssuanceLedger(address, uint256) view returns (uint256 debtPercentage, uint256 debtEntryIndex)",
                      "function appendAccountIssuanceRecord(address account, uint256 debtRatio, uint256 debtEntryIndex, uint256 currentPeriodStartDebtIndex)",
                      "function applicableIssuanceData(address account, uint256 closingDebtIndex) view returns (uint256, uint256)",
                      "function feePool() view returns (address)",
                      "function getAccountsDebtEntry(address account, uint256 index) view returns (uint256 debtPercentage, uint256 debtEntryIndex)",
                      "function importIssuerData(address[] accounts, uint256[] ratios, uint256 periodToInsert, uint256 feePeriodCloseIndex)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setFeePool(address _feePool)",
                      "function setupExpiryTime() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x750b8385e643e34fe99de23550811a60b18f473873c37b6858d85ad03c0a2c6c",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardsDistribution": {
                    "address": "0x2cd4aA2a3b97546B3FC1Bd630f5208a3934bDA10",
                    "sourceName": "contracts/RewardsDistribution.sol",
                    "contractName": "RewardsDistribution",
                    "abi": [
                      "constructor(address _owner, address _authority, address _synthetixProxy, address _rewardEscrow, address _feePoolProxy)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RewardDistributionAdded(uint256 index, address destination, uint256 amount)",
                      "event RewardsDistributed(uint256 amount)",
                      "function acceptOwnership()",
                      "function addRewardDistribution(address destination, uint256 amount) returns (bool)",
                      "function authority() view returns (address)",
                      "function distributeRewards(uint256 amount) returns (bool)",
                      "function distributions(uint256) view returns (address destination, uint256 amount)",
                      "function distributionsLength() view returns (uint256)",
                      "function editRewardDistribution(uint256 index, address destination, uint256 amount) returns (bool)",
                      "function feePoolProxy() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRewardDistribution(uint256 index)",
                      "function rewardEscrow() view returns (address)",
                      "function setAuthority(address _authority)",
                      "function setFeePoolProxy(address _feePoolProxy)",
                      "function setRewardEscrow(address _rewardEscrow)",
                      "function setSynthetixProxy(address _synthetixProxy)",
                      "function synthetixProxy() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x71504d1b4fe70f705d4e3b40b9db9b37e47cd043aee11bcd0e395713540d124b",
                    "deployedOn": "run.synthetix"
                  },
                  "DebtCache": {
                    "address": "0xE4E52c1C82B4e7D169Dd97d9CFD8a07F13b333cD",
                    "sourceName": "contracts/DebtCache.sol",
                    "contractName": "DebtCache",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DebtCacheSnapshotTaken(uint256 timestamp)",
                      "event DebtCacheUpdated(uint256 cachedDebt)",
                      "event DebtCacheValidityChanged(bool indexed isInvalid)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function cacheInfo() view returns (uint256 debt, uint256 timestamp, bool isInvalid, bool isStale)",
                      "function cacheInvalid() view returns (bool)",
                      "function cacheStale() view returns (bool)",
                      "function cacheTimestamp() view returns (uint256)",
                      "function cachedDebt() view returns (uint256)",
                      "function cachedSynthDebt(bytes32 currencyKey) view returns (uint256)",
                      "function cachedSynthDebts(bytes32[] currencyKeys) view returns (uint256[] snxIssuedDebts)",
                      "function currentDebt() view returns (uint256 debt, bool anyRateIsInvalid)",
                      "function currentSynthDebts(bytes32[] currencyKeys) view returns (uint256[] debtValues, uint256 futuresDebt, uint256 excludedDebt, bool anyRateIsInvalid)",
                      "function debtSnapshotStaleTime() view returns (uint256)",
                      "function excludedIssuedDebts(bytes32[] currencyKeys) view returns (uint256[] excludedDebts)",
                      "function importExcludedIssuedDebts(address prevDebtCache, address prevIssuer)",
                      "function isInitialized() view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function purgeCachedSynthDebt(bytes32 currencyKey)",
                      "function rebuildCache()",
                      "function recordExcludedDebtChange(bytes32 currencyKey, int256 delta)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function takeDebtSnapshot()",
                      "function totalNonSnxBackedDebt() view returns (uint256 excludedDebt, bool isInvalid)",
                      "function updateCachedSynthDebtWithRate(bytes32 currencyKey, uint256 currencyRate)",
                      "function updateCachedSynthDebts(bytes32[] currencyKeys)",
                      "function updateCachedSynthDebtsWithRates(bytes32[] currencyKeys, uint256[] currencyRates)",
                      "function updateCachedsUSDDebt(int256 amount)",
                      "function updateDebtCacheValidity(bool currentlyInvalid)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x3c36c37101fb1f5622a837d49f46ae86480d55044bb616c3792e30e2bd05fc78",
                    "deployedOn": "run.synthetix"
                  },
                  "Exchanger": {
                    "address": "0x55d1dbdD814fEB50b4CdFD554f370cdA954eB4d7",
                    "sourceName": "contracts/ExchangerWithFeeRecAlternatives.sol",
                    "contractName": "ExchangerWithFeeRecAlternatives",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event ExchangeEntryAppended(address indexed account, bytes32 src, uint256 amount, bytes32 dest, uint256 amountReceived, uint256 exchangeFeeRate, uint256 roundIdForSrc, uint256 roundIdForDest)",
                      "event ExchangeEntrySettled(address indexed from, bytes32 src, uint256 amount, bytes32 dest, uint256 reclaim, uint256 rebate, uint256 srcRoundIdAtPeriodEnd, uint256 destRoundIdAtPeriodEnd, uint256 exchangeTimestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event VirtualSynthCreated(address indexed synth, address indexed recipient, address vSynth, bytes32 currencyKey, uint256 amount)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function atomicMaxVolumePerBlock() view returns (uint256)",
                      "function calculateAmountAfterSettlement(address from, bytes32 currencyKey, uint256 amount, uint256 refunded) view returns (uint256 amountAfterSettlement)",
                      "function dynamicFeeRateForExchange(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256 feeRate, bool tooVolatile)",
                      "function exchange(address exchangeForAddress, address from, bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, address destinationAddress, bool virtualSynth, address rewardAddress, bytes32 trackingCode) returns (uint256 amountReceived, address vSynth)",
                      "function exchangeAtomically(address from, bytes32 sourceCurrencyKey, uint256 sourceAmount, bytes32 destinationCurrencyKey, address destinationAddress, bytes32 trackingCode, uint256 minAmount) returns (uint256 amountReceived)",
                      "function feeRateForAtomicExchange(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256 exchangeFeeRate)",
                      "function feeRateForExchange(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256)",
                      "function getAmountsForAtomicExchange(uint256 sourceAmount, bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256 amountReceived, uint256 fee, uint256 exchangeFeeRate)",
                      "function getAmountsForExchange(uint256 sourceAmount, bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256 amountReceived, uint256 fee, uint256 exchangeFeeRate)",
                      "function hasWaitingPeriodOrSettlementOwing(address account, bytes32 currencyKey) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function isSynthRateInvalid(bytes32 currencyKey) view returns (bool)",
                      "function lastAtomicVolume() view returns (uint64 time, uint192 volume)",
                      "function lastExchangeRate(bytes32 currencyKey) view returns (uint256)",
                      "function maxSecsLeftInWaitingPeriod(address account, bytes32 currencyKey) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function priceDeviationThresholdFactor() view returns (uint256)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function settle(address from, bytes32 currencyKey) returns (uint256 reclaimed, uint256 refunded, uint256 numEntriesSettled)",
                      "function settlementOwing(address account, bytes32 currencyKey) view returns (uint256 reclaimAmount, uint256 rebateAmount, uint256 numEntries)",
                      "function tradingRewardsEnabled() view returns (bool)",
                      "function waitingPeriodSecs() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x0026fac4b28086ba0974a833c019b6f7d979f368e54c1deb553a30eb3110e105",
                    "deployedOn": "run.synthetix"
                  },
                  "CircuitBreaker": {
                    "address": "0x1Dc60137556243EeB8AAE0dAcDc7DcFed0cc0e5b",
                    "sourceName": "contracts/CircuitBreaker.sol",
                    "contractName": "CircuitBreaker",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CircuitBroken(address indexed oracleAddress, uint256 previousValue, uint256 newValue)",
                      "event LastValueOverridden(address indexed oracleAddress, uint256 previousValue, uint256 newValue)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function circuitBroken(address oracleAddress) view returns (bool)",
                      "function isDeviationAboveThreshold(uint256 base, uint256 comparison) view returns (bool)",
                      "function isInvalid(address oracleAddress, uint256 value) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function lastValue(address oracleAddress) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function priceDeviationThresholdFactor() view returns (uint256)",
                      "function probeCircuitBreaker(address oracleAddress, uint256 value) returns (bool circuitBroken)",
                      "function rebuildCache()",
                      "function resetLastValue(address[] oracleAddresses, uint256[] values)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x66668ae23b268b25187a18a9375ec8439bc7ed373132822185fd878e3ae513de",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeCircuitBreaker": {
                    "address": "0x3b8a2a1872c4cc8C3EE6c9fa6d3236ce3f10FA20",
                    "sourceName": "contracts/ExchangeCircuitBreaker.sol",
                    "contractName": "ExchangeCircuitBreaker",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CIRCUIT_BREAKER_SUSPENSION_REASON() view returns (uint256)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function exchangeRates() view returns (address)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rateWithBreakCircuit(bytes32 currencyKey) returns (uint256 lastValidRate, bool invalid)",
                      "function rateWithInvalid(bytes32 currencyKey) view returns (uint256 rate, bool invalid)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x4ba2081c3e20f4e96dd01917a685403afa7dff4621aced8bb1e5614bb5c30646",
                    "deployedOn": "run.synthetix"
                  },
                  "VirtualSynthMastercopy": {
                    "address": "0x1f6Eba1Ac6a62df62edC54159A05711636b33D4C",
                    "sourceName": "contracts/VirtualSynthMastercopy.sol",
                    "contractName": "VirtualSynthMastercopy",
                    "abi": [
                      "constructor()",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event Settled(uint256 totalSupply, uint256 amountAfterSettled)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function balanceOfUnderlying(address account) view returns (uint256)",
                      "function currencyKey() view returns (bytes32)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialSupply() view returns (uint256)",
                      "function initialize(address _synth, address _resolver, address _recipient, uint256 _amount, bytes32 _currencyKey)",
                      "function initialized() view returns (bool)",
                      "function name() view returns (string)",
                      "function rate() view returns (uint256)",
                      "function readyToSettle() view returns (bool)",
                      "function resolver() view returns (address)",
                      "function secsLeftInWaitingPeriod() view returns (uint256)",
                      "function settle(address account)",
                      "function settled() view returns (bool)",
                      "function settledAmount() view returns (uint256)",
                      "function symbol() view returns (string)",
                      "function synth() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address recipient, uint256 amount) returns (bool)",
                      "function transferFrom(address sender, address recipient, uint256 amount) returns (bool)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x784ccd6193221615f9a774c86fab608df07265d039eb9bba5141f5877c317589",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeState": {
                    "address": "0x76BBBEd4AB0e3097c6F5CcEa18334D08EED69f69",
                    "sourceName": "contracts/ExchangeState.sol",
                    "contractName": "ExchangeState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function appendExchangeEntry(address account, bytes32 src, uint256 amount, bytes32 dest, uint256 amountReceived, uint256 exchangeFeeRate, uint256 timestamp, uint256 roundIdForSrc, uint256 roundIdForDest)",
                      "function associatedContract() view returns (address)",
                      "function exchanges(address, bytes32, uint256) view returns (bytes32 src, uint256 amount, bytes32 dest, uint256 amountReceived, uint256 exchangeFeeRate, uint256 timestamp, uint256 roundIdForSrc, uint256 roundIdForDest)",
                      "function getEntryAt(address account, bytes32 currencyKey, uint256 index) view returns (bytes32 src, uint256 amount, bytes32 dest, uint256 amountReceived, uint256 exchangeFeeRate, uint256 timestamp, uint256 roundIdForSrc, uint256 roundIdForDest)",
                      "function getLengthOfEntries(address account, bytes32 currencyKey) view returns (uint256)",
                      "function getMaxTimestamp(address account, bytes32 currencyKey) view returns (uint256)",
                      "function maxEntriesInQueue() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeEntries(address account, bytes32 currencyKey)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setMaxEntriesInQueue(uint256 _maxEntriesInQueue)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x61637babbf8831961548b87d9d520db970c204cf8f2f9168d3b52508d732282b",
                    "deployedOn": "run.synthetix"
                  },
                  "Issuer": {
                    "address": "0xB70cf272E555091C970Fb3027cF7C4cfAd2D2650",
                    "sourceName": "contracts/Issuer.sol",
                    "contractName": "Issuer",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SynthAdded(bytes32 currencyKey, address synth)",
                      "event SynthRemoved(bytes32 currencyKey, address synth)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function addSynth(address synth)",
                      "function addSynths(address[] synthsToAdd)",
                      "function allNetworksDebtInfo() view returns (uint256 debt, uint256 sharesSupply, bool isStale)",
                      "function anySynthOrSNXRateIsInvalid() view returns (bool anyRateInvalid)",
                      "function availableCurrencyKeys() view returns (bytes32[])",
                      "function availableSynthCount() view returns (uint256)",
                      "function availableSynths(uint256) view returns (address)",
                      "function burnAndIssueSynthsWithoutDebtCache(address account, bytes32 currencyKey, uint256 amountOfSynth, uint256 amountInsUSD)",
                      "function burnForRedemption(address deprecatedSynthProxy, address account, uint256 balance)",
                      "function burnSynths(address from, uint256 amount)",
                      "function burnSynthsOnBehalf(address burnForAddress, address from, uint256 amount)",
                      "function burnSynthsToTarget(address from)",
                      "function burnSynthsToTargetOnBehalf(address burnForAddress, address from)",
                      "function burnSynthsWithoutDebt(bytes32 currencyKey, address from, uint256 amount) returns (bool rateInvalid)",
                      "function canBurnSynths(address account) view returns (bool)",
                      "function collateral(address account) view returns (uint256)",
                      "function collateralisationRatio(address _issuer) view returns (uint256 cratio)",
                      "function collateralisationRatioAndAnyRatesInvalid(address _issuer) view returns (uint256 cratio, bool anyRateIsInvalid)",
                      "function debtBalanceOf(address _issuer, bytes32 currencyKey) view returns (uint256 debtBalance)",
                      "function getSynths(bytes32[] currencyKeys) view returns (address[])",
                      "function isResolverCached() view returns (bool)",
                      "function issuanceRatio() view returns (uint256)",
                      "function issueMaxSynths(address from)",
                      "function issueMaxSynthsOnBehalf(address issueForAddress, address from)",
                      "function issueSynths(address from, uint256 amount)",
                      "function issueSynthsOnBehalf(address issueForAddress, address from, uint256 amount)",
                      "function issueSynthsWithoutDebt(bytes32 currencyKey, address to, uint256 amount) returns (bool rateInvalid)",
                      "function lastIssueEvent(address account) view returns (uint256)",
                      "function liquidateAccount(address account, bool isSelfLiquidation) returns (uint256 totalRedeemed, uint256 debtRemoved, uint256 escrowToLiquidate)",
                      "function liquidationAmounts(address account, bool isSelfLiquidation) view returns (uint256 totalRedeemed, uint256 debtToRemove, uint256 escrowToLiquidate, uint256 initialDebtBalance)",
                      "function maxIssuableSynths(address _issuer) view returns (uint256)",
                      "function minimumStakeTime() view returns (uint256)",
                      "function modifyDebtSharesForMigration(address account, uint256 amount)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function remainingIssuableSynths(address _issuer) view returns (uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt)",
                      "function removeSynth(bytes32 currencyKey)",
                      "function removeSynths(bytes32[] currencyKeys)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setCurrentPeriodId(uint128 periodId)",
                      "function synths(bytes32) view returns (address)",
                      "function synthsByAddress(address) view returns (bytes32)",
                      "function totalIssuedSynths(bytes32 currencyKey, bool excludeOtherCollateral) view returns (uint256 totalIssued)",
                      "function transferableSynthetixAndAnyRateIsInvalid(address account, uint256 balance) view returns (uint256 transferable, bool anyRateIsInvalid)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xfda6a692a25069aaac6735b2bffa488318436d56fdc6b93c42f2fdc8bfb7c876",
                    "deployedOn": "run.synthetix"
                  },
                  "TradingRewards": {
                    "address": "0x515022fad52B0050323510562c82f63d1FaDE389",
                    "sourceName": "contracts/TradingRewards.sol",
                    "contractName": "TradingRewards",
                    "abi": [
                      "constructor(address owner, address periodController, address resolver)",
                      "event AssignedRewardTokensRecovered(address recoverAddress, uint256 amount, uint256 periodID)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event ExchangeFeeRecorded(address indexed account, uint256 amount, uint256 periodID)",
                      "event NewPeriodStarted(uint256 periodID)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "event PeriodControllerChanged(address newPeriodController)",
                      "event PeriodFinalizedWithRewards(uint256 periodID, uint256 rewards)",
                      "event RewardsClaimed(address indexed account, uint256 amount, uint256 periodID)",
                      "event TokensRecovered(address tokenAddress, address recoverAddress, uint256 amount)",
                      "event UnassignedRewardTokensRecovered(address recoverAddress, uint256 amount)",
                      "function acceptOwnership()",
                      "function claimRewardsForPeriod(uint256 periodID)",
                      "function claimRewardsForPeriods(uint256[] periodIDs)",
                      "function closeCurrentPeriodWithRewards(uint256 rewards)",
                      "function getAvailableRewards() view returns (uint256)",
                      "function getAvailableRewardsForAccountForPeriod(address account, uint256 periodID) view returns (uint256)",
                      "function getAvailableRewardsForAccountForPeriods(address account, uint256[] periodIDs) view returns (uint256 totalRewards)",
                      "function getCurrentPeriod() view returns (uint256)",
                      "function getPeriodAvailableRewards(uint256 periodID) view returns (uint256)",
                      "function getPeriodController() view returns (address)",
                      "function getPeriodIsClaimable(uint256 periodID) view returns (bool)",
                      "function getPeriodIsFinalized(uint256 periodID) view returns (bool)",
                      "function getPeriodRecordedFees(uint256 periodID) view returns (uint256)",
                      "function getPeriodTotalRewards(uint256 periodID) view returns (uint256)",
                      "function getRewardsToken() view returns (address)",
                      "function getUnaccountedFeesForAccountForPeriod(address account, uint256 periodID) view returns (uint256)",
                      "function getUnassignedRewards() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function lastPauseTime() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notifyRewardAmount(uint256 reward)",
                      "function owner() view returns (address)",
                      "function paused() view returns (bool)",
                      "function rebuildCache()",
                      "function recordExchangeFeeForAccount(uint256 usdFeeAmount, address account)",
                      "function recoverAssignedRewardTokensAndDestroyPeriod(address recoverAddress, uint256 periodID)",
                      "function recoverTokens(address tokenAddress, address recoverAddress)",
                      "function recoverUnassignedRewardTokens(address recoverAddress)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function rewardsDistribution() view returns (address)",
                      "function setPaused(bool _paused)",
                      "function setPeriodController(address newPeriodController)",
                      "function setRewardsDistribution(address _rewardsDistribution)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xef6a35664de3e7cdcd993ce88faca3407e213f112bc43b81f7f26cc08ec80837",
                    "deployedOn": "run.synthetix"
                  },
                  "SupplySchedule": {
                    "address": "0xAda12611B34a992b1c01cB3Bbc9C43Fa5B46a6c7",
                    "sourceName": "contracts/SupplySchedule.sol",
                    "contractName": "SupplySchedule",
                    "abi": [
                      "constructor(address _owner, uint256 _lastMintEvent, uint256 _currentWeek)",
                      "event InflationAmountUpdated(uint256 newInflationAmount)",
                      "event MaxInflationAmountUpdated(uint256 newInflationAmount)",
                      "event MinterRewardUpdated(uint256 newRewardAmount)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SupplyMinted(uint256 supplyMinted, uint256 numberOfWeeksIssued, uint256 lastMintEvent, uint256 timestamp)",
                      "event SynthetixProxyUpdated(address newAddress)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function INFLATION_START_DATE() view returns (uint256)",
                      "function MAX_MINTER_REWARD() view returns (uint256)",
                      "function MINT_BUFFER() view returns (uint256)",
                      "function MINT_PERIOD_DURATION() view returns (uint256)",
                      "function acceptOwnership()",
                      "function inflationAmount() view returns (uint256)",
                      "function isMintable() view returns (bool)",
                      "function lastMintEvent() view returns (uint256)",
                      "function maxInflationAmount() view returns (uint256)",
                      "function mintableSupply() view returns (uint256)",
                      "function minterReward() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function recordMintEvent(uint256 supplyMinted) returns (uint256)",
                      "function setInflationAmount(uint256 amount)",
                      "function setMaxInflationAmount(uint256 amount)",
                      "function setMinterReward(uint256 amount)",
                      "function setSynthetixProxy(address _synthetixProxy)",
                      "function synthetixProxy() view returns (address)",
                      "function weekCounter() view returns (uint256)",
                      "function weeksSinceLastIssuance() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x9283596a6538aa037bcc84364e2cf34de91ab52efcea13f3089846ba688e42bd",
                    "deployedOn": "run.synthetix"
                  },
                  "EscrowChecker": {
                    "address": "0x7f9Ecf9cD54cDB7D00927cf32e4029f9a69AF4e5",
                    "sourceName": "contracts/EscrowChecker.sol",
                    "contractName": "EscrowChecker",
                    "abi": [
                      "constructor(address _esc)",
                      "function checkAccountSchedule(address account) view returns (uint256[16])",
                      "function synthetix_escrow() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x48b2ebde08a49932630cea0fae255654cd62887c6c9daed93a47d2c89dea5e0a",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixBridgeToOptimism": {
                    "address": "0x4F9bD9865F3184975a2fBaA8b07F1c524276f8ab",
                    "sourceName": "contracts/SynthetixBridgeToOptimism.sol",
                    "contractName": "SynthetixBridgeToOptimism",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DepositInitiated(address indexed _from, address _to, uint256 _amount)",
                      "event ExportedVestingEntries(address indexed account, uint256 escrowedAccountBalance, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                      "event FeePeriodClosed(uint256 snxBackedDebt, uint256 totalDebtShares)",
                      "event FinalizeSynthTransfer(bytes32 indexed currencyKey, address indexed destination, uint256 amount)",
                      "event InitiateSynthTransfer(bytes32 indexed currencyKey, address indexed destination, uint256 amount)",
                      "event InitiationResumed()",
                      "event InitiationSuspended()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RewardDepositInitiated(address indexed account, uint256 amount)",
                      "event WithdrawalFinalized(address indexed _to, uint256 _amount)",
                      "function CONTRACT_NAME() pure returns (bytes32)",
                      "function acceptOwnership()",
                      "function closeFeePeriod(uint256 snxBackedAmount, uint256 totalDebtShares)",
                      "function deposit(uint256 amount)",
                      "function depositAndMigrateEscrow(uint256 depositAmount, uint256[][] entryIDs)",
                      "function depositReward(uint256 amount)",
                      "function depositTo(address to, uint256 amount)",
                      "function finalizeSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                      "function finalizeWithdrawal(address to, uint256 amount)",
                      "function forwardTokensToEscrow(address token)",
                      "function initiateSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                      "function initiationActive() view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function migrateEscrow(uint256[][] entryIDs)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notifyRewardAmount(uint256 amount)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function resumeInitiation()",
                      "function suspendInitiation()",
                      "function synthTransferReceived() view returns (uint256)",
                      "function synthTransferSent() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x183e7b7dbd352762ddb97dfb2c21ee7c7cc1a415fed98664652c9531620a850d",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixBridgeEscrow": {
                    "address": "0x0e37B420BE11BCf06CD5309ce67B65d3aC0623CE",
                    "sourceName": "contracts/SynthetixBridgeEscrow.sol",
                    "contractName": "SynthetixBridgeEscrow",
                    "abi": [
                      "constructor(address _owner)",
                      "event BridgeApproval(address _token, address indexed spender, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function approveBridge(address _token, address _bridge, uint256 _amount)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xf0f6e737efbb376940b38fb330cfbea0617bd300df6f18ee5ad2facfa4fe616d",
                    "deployedOn": "run.synthetix"
                  },
                  "OwnerRelayOnEthereum": {
                    "address": "0x8F09aDe8Ec994C3F977E5eA03026E1E2eFA314a7",
                    "sourceName": "contracts/OwnerRelayOnEthereum.sol",
                    "contractName": "OwnerRelayOnEthereum",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RelayBatchInitiated(address[] targets, bytes[] payloads)",
                      "event RelayInitiated(address target, bytes payload)",
                      "function acceptOwnership()",
                      "function initiateRelay(address target, bytes payload, uint32 crossDomainGasLimit)",
                      "function initiateRelayBatch(address[] targets, bytes[] payloads, uint32 crossDomainGasLimit)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xb7adcd18e3f1c7fb08cd7dcf3cffc9cf361a71a3f2a4927652486be1241b1c77",
                    "deployedOn": "run.synthetix"
                  },
                  "DebtMigratorOnEthereum": {
                    "address": "0x6344FB25202Ce5a0134A3dAb7496443c3f1A95a7",
                    "sourceName": "contracts/DebtMigratorOnEthereum.sol",
                    "contractName": "DebtMigratorOnEthereum",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event InitiationResumed()",
                      "event InitiationSuspended()",
                      "event MigrationInitiated(address indexed account, uint256 totalDebtSharesMigrated, uint256 totalEscrowMigrated, uint256 totalLiquidBalanceMigrated)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() pure returns (bytes32)",
                      "function acceptOwnership()",
                      "function debtTransferReceived() view returns (uint256)",
                      "function debtTransferSent() view returns (uint256)",
                      "function initiationActive() view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function migrateDebt(address account)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function resumeInitiation()",
                      "function suspendInitiation()"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xcce69fa50f3975efbe53dcaf48ce34e591b2b66f2d80cb8a7c6660476de5093d",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthRedeemer": {
                    "address": "0xe0be9AA35c46D4aF31b6183F1253B77EC6156ebb",
                    "sourceName": "contracts/SynthRedeemer.sol",
                    "contractName": "SynthRedeemer",
                    "abi": [
                      "constructor(address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event SynthDeprecated(address synth, uint256 rateToRedeem, uint256 totalSynthSupply, uint256 supplyInsUSD)",
                      "event SynthRedeemed(address synth, address account, uint256 amountOfSynth, uint256 amountInsUSD)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function balanceOf(address synthProxy, address account) view returns (uint256 balanceInsUSD)",
                      "function deprecate(address synthProxy, uint256 rateToRedeem)",
                      "function isResolverCached() view returns (bool)",
                      "function rebuildCache()",
                      "function redeem(address synthProxy)",
                      "function redeemAll(address[] synthProxies)",
                      "function redeemPartial(address synthProxy, uint256 amountOfSynth)",
                      "function redemptions(address) view returns (uint256)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function totalSupply(address synthProxy) view returns (uint256 supplyInsUSD)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x9681d4d9671a34ef75870a5af759ca81ec226657c372f8d0f487f98b8f579355",
                    "deployedOn": "run.synthetix"
                  },
                  "WrapperFactory": {
                    "address": "0x3358873fF691f58b3243B1c4F698350A6603C6b1",
                    "sourceName": "contracts/WrapperFactory.sol",
                    "contractName": "WrapperFactory",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event WrapperCreated(address indexed token, bytes32 indexed currencyKey, address wrapperAddress)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function createWrapper(address token, bytes32 currencyKey, bytes32 synthContractName) returns (address)",
                      "function distributeFees()",
                      "function feesEscrowed() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function isWrapper(address possibleWrapper) view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x0dc4a00048316575df8973332d523d02d7c827424bb404adf6ace4394f3160ea",
                    "deployedOn": "run.synthetix"
                  },
                  "DirectIntegrationManager": {
                    "address": "0xB2E57aC75df91784d76f9Dc0C00AdEFf2eFAe317",
                    "sourceName": "contracts/DirectIntegrationManager.sol",
                    "contractName": "DirectIntegrationManager",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event IntegrationParametersSet(address indexed integration, bytes32 indexed currencyKey, tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) overrides)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function getExchangeParameters(address integration, bytes32 currencyKey) view returns (tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) overrides)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setExchangeParameters(address integration, bytes32[] currencyKeys, tuple(bytes32 currencyKey, address dexPriceAggregator, address atomicEquivalentForDexPricing, uint256 atomicExchangeFeeRate, uint256 atomicTwapWindow, uint256 atomicMaxVolumePerBlock, uint256 atomicVolatilityConsiderationWindow, uint256 atomicVolatilityUpdateThreshold, uint256 exchangeFeeRate, uint256 exchangeMaxDynamicFee, uint256 exchangeDynamicFeeRounds, uint256 exchangeDynamicFeeThreshold, uint256 exchangeDynamicFeeWeightDecay) settings)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x1461442c17e86a4d4d1c26c1ad8636bed4329751fa9188691db43475f61883d6",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesUSD": {
                    "address": "0x0731973f1F301aFE098b8FC58af8F29792B30B0F",
                    "sourceName": "contracts/TokenState.sol",
                    "contractName": "TokenState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function allowance(address, address) view returns (uint256)",
                      "function associatedContract() view returns (address)",
                      "function balanceOf(address) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAllowance(address tokenOwner, address spender, uint256 value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBalanceOf(address account, uint256 value)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xc51d0f65de702a07ad460f71449dc5ce40a9ab76d2477421d83d3fd1aca8bbc8",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxysUSD": {
                    "address": "0xa032eEf7d27503Bd44D3882487627001E77829b8",
                    "sourceName": "contracts/ProxyERC20.sol",
                    "contractName": "ProxyERC20",
                    "abi": [
                      "constructor(address _owner)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function symbol() view returns (string)",
                      "function target() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthsUSD": {
                    "address": "0x4Ae41c02994a623D55Ea24a8A6bF678C6B192245",
                    "sourceName": "contracts/MultiCollateralSynth.sol",
                    "contractName": "MultiCollateralSynth",
                    "abi": [
                      "constructor(address _proxy, address _tokenState, string _tokenName, string _tokenSymbol, address _owner, bytes32 _currencyKey, uint256 _totalSupply, address _resolver)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event Burned(address indexed account, uint256 value)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event Issued(address indexed account, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ProxyUpdated(address proxyAddress)",
                      "event TokenStateUpdated(address newTokenState)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function DECIMALS() view returns (uint8)",
                      "function FEE_ADDRESS() view returns (address)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function burn(address account, uint256 amount)",
                      "function currencyKey() view returns (bytes32)",
                      "function decimals() view returns (uint8)",
                      "function isResolverCached() view returns (bool)",
                      "function issue(address account, uint256 amount)",
                      "function messageSender() view returns (address)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function setTokenState(address _tokenState)",
                      "function setTotalSupply(uint256 amount)",
                      "function symbol() view returns (string)",
                      "function tokenState() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferAndSettle(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)",
                      "function transferFromAndSettle(address from, address to, uint256 value) returns (bool)",
                      "function transferableSynths(address account) view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xccb08001de62feff27320e00188cd380aeedf20fbe3c9aa0db7ac2be6d437443",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesETH": {
                    "address": "0x6EE70d08D7b330e49E3A8B318010efe0C0acB2F5",
                    "sourceName": "contracts/TokenState.sol",
                    "contractName": "TokenState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function allowance(address, address) view returns (uint256)",
                      "function associatedContract() view returns (address)",
                      "function balanceOf(address) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAllowance(address tokenOwner, address spender, uint256 value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBalanceOf(address account, uint256 value)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxysETH": {
                    "address": "0x033c10c259fac8fFA7e29c154a7e35877E55cE81",
                    "sourceName": "contracts/ProxyERC20.sol",
                    "contractName": "ProxyERC20",
                    "abi": [
                      "constructor(address _owner)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function symbol() view returns (string)",
                      "function target() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthsETH": {
                    "address": "0xc563e5E774f66C55DAd58ceD174506f8949D60Fc",
                    "sourceName": "contracts/MultiCollateralSynth.sol",
                    "contractName": "MultiCollateralSynth",
                    "abi": [
                      "constructor(address _proxy, address _tokenState, string _tokenName, string _tokenSymbol, address _owner, bytes32 _currencyKey, uint256 _totalSupply, address _resolver)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event Burned(address indexed account, uint256 value)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event Issued(address indexed account, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ProxyUpdated(address proxyAddress)",
                      "event TokenStateUpdated(address newTokenState)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function DECIMALS() view returns (uint8)",
                      "function FEE_ADDRESS() view returns (address)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function burn(address account, uint256 amount)",
                      "function currencyKey() view returns (bytes32)",
                      "function decimals() view returns (uint8)",
                      "function isResolverCached() view returns (bool)",
                      "function issue(address account, uint256 amount)",
                      "function messageSender() view returns (address)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function setTokenState(address _tokenState)",
                      "function setTotalSupply(uint256 amount)",
                      "function symbol() view returns (string)",
                      "function tokenState() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferAndSettle(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)",
                      "function transferFromAndSettle(address from, address to, uint256 value) returns (bool)",
                      "function transferableSynths(address account) view returns (uint256)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesBTC": {
                    "address": "0xD569387AE9bC0028AAaf65936897e894941aA3A1",
                    "sourceName": "contracts/TokenState.sol",
                    "contractName": "TokenState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function allowance(address, address) view returns (uint256)",
                      "function associatedContract() view returns (address)",
                      "function balanceOf(address) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setAllowance(address tokenOwner, address spender, uint256 value)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function setBalanceOf(address account, uint256 value)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxysBTC": {
                    "address": "0x993783797Ad658e60A8d28528cBA13450925A1A5",
                    "sourceName": "contracts/ProxyERC20.sol",
                    "contractName": "ProxyERC20",
                    "abi": [
                      "constructor(address _owner)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event TargetUpdated(address newTarget)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setTarget(address _target)",
                      "function symbol() view returns (string)",
                      "function target() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthsBTC": {
                    "address": "0x391683f29453E86ABd9FBA3Ab0a883EF77F5ACbC",
                    "sourceName": "contracts/MultiCollateralSynth.sol",
                    "contractName": "MultiCollateralSynth",
                    "abi": [
                      "constructor(address _proxy, address _tokenState, string _tokenName, string _tokenSymbol, address _owner, bytes32 _currencyKey, uint256 _totalSupply, address _resolver)",
                      "event Approval(address indexed owner, address indexed spender, uint256 value)",
                      "event Burned(address indexed account, uint256 value)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event Issued(address indexed account, uint256 value)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ProxyUpdated(address proxyAddress)",
                      "event TokenStateUpdated(address newTokenState)",
                      "event Transfer(address indexed from, address indexed to, uint256 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function DECIMALS() view returns (uint8)",
                      "function FEE_ADDRESS() view returns (address)",
                      "function acceptOwnership()",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 value) returns (bool)",
                      "function balanceOf(address account) view returns (uint256)",
                      "function burn(address account, uint256 amount)",
                      "function currencyKey() view returns (bytes32)",
                      "function decimals() view returns (uint8)",
                      "function isResolverCached() view returns (bool)",
                      "function issue(address account, uint256 amount)",
                      "function messageSender() view returns (address)",
                      "function name() view returns (string)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function setTokenState(address _tokenState)",
                      "function setTotalSupply(uint256 amount)",
                      "function symbol() view returns (string)",
                      "function tokenState() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 value) returns (bool)",
                      "function transferAndSettle(address to, uint256 value) returns (bool)",
                      "function transferFrom(address from, address to, uint256 value) returns (bool)",
                      "function transferFromAndSettle(address from, address to, uint256 value) returns (bool)",
                      "function transferableSynths(address account) view returns (uint256)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "Depot": {
                    "address": "0x91112d49095Febf1616af25be7f32Cf580DBC7A3",
                    "sourceName": "contracts/Depot.sol",
                    "contractName": "Depot",
                    "abi": [
                      "constructor(address _owner, address _fundsWallet, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event ClearedDeposit(address indexed fromAddress, address indexed toAddress, uint256 fromETHAmount, uint256 toAmount, uint256 indexed depositIndex)",
                      "event Exchange(string fromCurrency, uint256 fromAmount, string toCurrency, uint256 toAmount)",
                      "event FundsWalletUpdated(address newFundsWallet)",
                      "event MaxEthPurchaseUpdated(uint256 amount)",
                      "event MinimumDepositAmountUpdated(uint256 amount)",
                      "event NonPayableContract(address indexed receiver, uint256 amount)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "event SynthDeposit(address indexed user, uint256 amount, uint256 indexed depositIndex)",
                      "event SynthDepositNotAccepted(address user, uint256 amount, uint256 minimum)",
                      "event SynthDepositRemoved(address indexed user, uint256 amount, uint256 indexed depositIndex)",
                      "event SynthWithdrawal(address user, uint256 amount)",
                      "function acceptOwnership()",
                      "function depositEndIndex() view returns (uint256)",
                      "function depositStartIndex() view returns (uint256)",
                      "function depositSynths(uint256 amount)",
                      "function deposits(uint256) view returns (address user, uint256 amount)",
                      "function exchangeEtherForSNX() payable returns (uint256)",
                      "function exchangeEtherForSNXAtRate(uint256 guaranteedEtherRate, uint256 guaranteedSynthetixRate) payable returns (uint256)",
                      "function exchangeEtherForSynths() payable returns (uint256)",
                      "function exchangeEtherForSynthsAtRate(uint256 guaranteedRate) payable returns (uint256)",
                      "function exchangeSynthsForSNX(uint256 synthAmount) returns (uint256)",
                      "function exchangeSynthsForSNXAtRate(uint256 synthAmount, uint256 guaranteedRate) returns (uint256)",
                      "function fundsWallet() view returns (address)",
                      "function isResolverCached() view returns (bool)",
                      "function lastPauseTime() view returns (uint256)",
                      "function maxEthPurchase() view returns (uint256)",
                      "function minimumDepositAmount() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function paused() view returns (bool)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setFundsWallet(address _fundsWallet)",
                      "function setMaxEthPurchase(uint256 _maxEthPurchase)",
                      "function setMinimumDepositAmount(uint256 _amount)",
                      "function setPaused(bool _paused)",
                      "function smallDeposits(address) view returns (uint256)",
                      "function synthetixReceivedForEther(uint256 amount) view returns (uint256)",
                      "function synthetixReceivedForSynths(uint256 amount) view returns (uint256)",
                      "function synthsReceivedForEther(uint256 amount) view returns (uint256)",
                      "function totalSellableDeposits() view returns (uint256)",
                      "function withdrawMyDepositedSynths()",
                      "function withdrawSynthetix(uint256 amount)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x483c52a31c15e1c203d4ed6c0e00d018ed62872fea8c9d92f0e0959503586812",
                    "deployedOn": "run.synthetix"
                  },
                  "EtherWrapper": {
                    "address": "0x8c40995955502B7d5F4555B43BA0aCe402B216B5",
                    "sourceName": "contracts/EtherWrapper.sol",
                    "contractName": "EtherWrapper",
                    "abi": [
                      "constructor(address _owner, address _resolver, address _WETH)",
                      "event Burned(address indexed account, uint256 principal, uint256 fee, uint256 amountIn)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event Minted(address indexed account, uint256 principal, uint256 fee, uint256 amountIn)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "function acceptOwnership()",
                      "function burn(uint256 amountIn)",
                      "function burnFeeRate() view returns (uint256)",
                      "function calculateBurnFee(uint256 amount) view returns (uint256)",
                      "function calculateMintFee(uint256 amount) view returns (uint256)",
                      "function capacity() view returns (uint256 _capacity)",
                      "function distributeFees()",
                      "function feesEscrowed() view returns (uint256)",
                      "function getReserves() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function lastPauseTime() view returns (uint256)",
                      "function maxETH() view returns (uint256)",
                      "function mint(uint256 amountIn)",
                      "function mintFeeRate() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function paused() view returns (bool)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function sETHIssued() view returns (uint256)",
                      "function sUSDIssued() view returns (uint256)",
                      "function setPaused(bool _paused)",
                      "function totalIssuedSynths() view returns (uint256)",
                      "function weth() view returns (address)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xd86f65928fa144b7db5950e9b0cd7688af03dc17922bc018278f2305bb90d64c",
                    "deployedOn": "run.synthetix"
                  },
                  "NativeEtherWrapper": {
                    "address": "0xE35F9a96bFEa977b3660b8EF7fF8B326C9Ee150c",
                    "sourceName": "contracts/NativeEtherWrapper.sol",
                    "contractName": "NativeEtherWrapper",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event Burned(address indexed account, uint256 amount)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event Minted(address indexed account, uint256 amount)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function burn(uint256 amount)",
                      "function isResolverCached() view returns (bool)",
                      "function mint() payable",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x40b2a7df140860cd2c69c12daf7e4d4ef8ca111af07e5b8e15f23e13664729b9",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralUtil": {
                    "address": "0x928A72cbd43b2c27d76b2dF40fe408B86062976D",
                    "sourceName": "contracts/CollateralUtil.sol",
                    "contractName": "CollateralUtil",
                    "abi": [
                      "constructor(address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "function collateralRedeemed(bytes32 currency, uint256 amount, bytes32 collateralKey) view returns (uint256 collateral)",
                      "function getCollateralRatio(tuple(uint256 id, address account, uint256 collateral, bytes32 currency, uint256 amount, bool short, uint256 accruedInterest, uint256 interestIndex, uint256 lastInteraction) loan, bytes32 collateralKey) view returns (uint256 cratio)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationAmount(tuple(uint256 id, address account, uint256 collateral, bytes32 currency, uint256 amount, bool short, uint256 accruedInterest, uint256 interestIndex, uint256 lastInteraction) loan, uint256 minCratio, bytes32 collateralKey) view returns (uint256 amount)",
                      "function maxLoan(uint256 amount, bytes32 currency, uint256 minCratio, bytes32 collateralKey) view returns (uint256 max)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x9d642adaccb26d2b320bc7a2da7e3dc3b2fde7eb820e1db73622db2890c4045c",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralManagerState": {
                    "address": "0x4D06965E0941E0881a5308DFF66cD59D28a08E3f",
                    "sourceName": "contracts/CollateralManagerState.sol",
                    "contractName": "CollateralManagerState",
                    "abi": [
                      "constructor(address _owner, address _associatedContract)",
                      "event AssociatedContractUpdated(address associatedContract)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addShortCurrency(bytes32 currency)",
                      "function associatedContract() view returns (address)",
                      "function borrowRates(uint256) view returns (uint256)",
                      "function borrowRatesLastUpdated() view returns (uint256)",
                      "function decrementLongs(bytes32 synth, uint256 amount)",
                      "function decrementShorts(bytes32 synth, uint256 amount)",
                      "function getRateAt(uint256 index) view returns (uint256)",
                      "function getRatesAndTime(uint256 index) view returns (uint256 entryRate, uint256 lastRate, uint256 lastUpdated, uint256 newIndex)",
                      "function getRatesLength() view returns (uint256)",
                      "function getShortRatesAndTime(bytes32 currency, uint256 index) view returns (uint256 entryRate, uint256 lastRate, uint256 lastUpdated, uint256 newIndex)",
                      "function getShortRatesLength(bytes32 currency) view returns (uint256)",
                      "function incrementLongs(bytes32 synth, uint256 amount)",
                      "function incrementShorts(bytes32 synth, uint256 amount)",
                      "function incrementTotalLoans() returns (uint256)",
                      "function long(bytes32 synth) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function ratesLastUpdated() view returns (uint256)",
                      "function removeShortCurrency(bytes32 currency)",
                      "function setAssociatedContract(address _associatedContract)",
                      "function short(bytes32 synth) view returns (uint256)",
                      "function shortRates(bytes32, uint256) view returns (uint256)",
                      "function shortRatesLastUpdated(bytes32) view returns (uint256)",
                      "function totalIssuedSynths(bytes32) view returns (uint256 long, uint256 short)",
                      "function totalLoans() view returns (uint256)",
                      "function updateBorrowRates(uint256 rate)",
                      "function updateShortRates(bytes32 currency, uint256 rate)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xbda05381a8c1be1e5dc25f2388c4dbd9ab60078cb14a0c3cc3ab4ef4b20c73e6",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralManager": {
                    "address": "0x4dBB50B97EBBC4c29EddbE021Ab67b588b979711",
                    "sourceName": "contracts/CollateralManager.sol",
                    "contractName": "CollateralManager",
                    "abi": [
                      "constructor(address _state, address _owner, address _resolver, uint256 _maxDebt, uint256 _maxSkewRate, uint256 _baseBorrowRate, uint256 _baseShortRate)",
                      "event BaseBorrowRateUpdated(uint256 baseBorrowRate)",
                      "event BaseShortRateUpdated(uint256 baseShortRate)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CollateralAdded(address collateral)",
                      "event CollateralRemoved(address collateral)",
                      "event LiquidationPenaltyUpdated(uint256 liquidationPenalty)",
                      "event MaxDebtUpdated(uint256 maxDebt)",
                      "event MaxSkewRateUpdated(uint256 maxSkewRate)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "event ShortableSynthAdded(bytes32 synth)",
                      "event ShortableSynthRemoved(bytes32 synth)",
                      "event SynthAdded(bytes32 synth)",
                      "event SynthRemoved(bytes32 synth)",
                      "event UtilisationMultiplierUpdated(uint256 utilisationMultiplier)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function accrueInterest(uint256 interestIndex, bytes32 currency, bool isShort) returns (uint256 difference, uint256 index)",
                      "function addCollaterals(address[] collaterals)",
                      "function addShortableSynths(bytes32[] requiredSynthNamesInResolver, bytes32[] synthKeys)",
                      "function addSynths(bytes32[] synthNamesInResolver, bytes32[] synthKeys)",
                      "function areShortableSynthsSet(bytes32[] requiredSynthNamesInResolver, bytes32[] synthKeys) view returns (bool)",
                      "function areSynthsAndCurrenciesSet(bytes32[] requiredSynthNamesInResolver, bytes32[] synthKeys) view returns (bool)",
                      "function baseBorrowRate() view returns (uint256)",
                      "function baseShortRate() view returns (uint256)",
                      "function decrementLongs(bytes32 synth, uint256 amount)",
                      "function decrementShorts(bytes32 synth, uint256 amount)",
                      "function exceedsDebtLimit(uint256 amount, bytes32 currency) view returns (bool canIssue, bool anyRateIsInvalid)",
                      "function getBorrowRate() view returns (uint256 borrowRate, bool anyRateIsInvalid)",
                      "function getNewLoanId() returns (uint256 id)",
                      "function getRatesAndTime(uint256 index) view returns (uint256 entryRate, uint256 lastRate, uint256 lastUpdated, uint256 newIndex)",
                      "function getShortRate(bytes32 synthKey) view returns (uint256 shortRate, bool rateIsInvalid)",
                      "function getShortRatesAndTime(bytes32 currency, uint256 index) view returns (uint256 entryRate, uint256 lastRate, uint256 lastUpdated, uint256 newIndex)",
                      "function hasAllCollaterals(address[] collaterals) view returns (bool)",
                      "function hasCollateral(address collateral) view returns (bool)",
                      "function incrementLongs(bytes32 synth, uint256 amount)",
                      "function incrementShorts(bytes32 synth, uint256 amount)",
                      "function isResolverCached() view returns (bool)",
                      "function isSynthManaged(bytes32 currencyKey) view returns (bool)",
                      "function lastPauseTime() view returns (uint256)",
                      "function long(bytes32 synth) view returns (uint256 amount)",
                      "function maxDebt() view returns (uint256)",
                      "function maxSkewRate() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function paused() view returns (bool)",
                      "function rebuildCache()",
                      "function removeCollaterals(address[] collaterals)",
                      "function removeShortableSynths(bytes32[] synths)",
                      "function removeSynths(bytes32[] synthNamesInResolver, bytes32[] synthKeys)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setBaseBorrowRate(uint256 _baseBorrowRate)",
                      "function setBaseShortRate(uint256 _baseShortRate)",
                      "function setMaxDebt(uint256 _maxDebt)",
                      "function setMaxSkewRate(uint256 _maxSkewRate)",
                      "function setPaused(bool _paused)",
                      "function setUtilisationMultiplier(uint256 _utilisationMultiplier)",
                      "function short(bytes32 synth) view returns (uint256 amount)",
                      "function shortableSynthsByKey(bytes32) view returns (bytes32)",
                      "function state() view returns (address)",
                      "function synthsByKey(bytes32) view returns (bytes32)",
                      "function totalLong() view returns (uint256 susdValue, bool anyRateIsInvalid)",
                      "function totalLongAndShort() view returns (uint256 susdValue, bool anyRateIsInvalid)",
                      "function totalShort() view returns (uint256 susdValue, bool anyRateIsInvalid)",
                      "function updateBorrowRatesCollateral(uint256 rate)",
                      "function updateShortRatesCollateral(bytes32 currency, uint256 rate)",
                      "function utilisationMultiplier() view returns (uint256)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x8b5fe92566edfb8eb58ab7a650a66c1f5b90c615f118913ae5691fe1acb1bfe7",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralEth": {
                    "address": "0xBd495E2cAB97441051e81f48ec2a9739957E069b",
                    "sourceName": "contracts/CollateralEth.sol",
                    "contractName": "CollateralEth",
                    "abi": [
                      "constructor(address _owner, address _manager, address _resolver, bytes32 _collateralKey, uint256 _minCratio, uint256 _minCollateral)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CanOpenLoansUpdated(bool canOpenLoans)",
                      "event CollateralDeposited(address indexed account, uint256 id, uint256 amountDeposited, uint256 collateralAfter)",
                      "event CollateralWithdrawn(address indexed account, uint256 id, uint256 amountWithdrawn, uint256 collateralAfter)",
                      "event IssueFeeRateUpdated(uint256 issueFeeRate)",
                      "event LoanClosed(address indexed account, uint256 id)",
                      "event LoanClosedByLiquidation(address indexed account, uint256 id, address indexed liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanClosedByRepayment(address indexed account, uint256 id, uint256 amountRepaid, uint256 collateralAfter)",
                      "event LoanCreated(address indexed account, uint256 id, uint256 amount, uint256 collateral, bytes32 currency, uint256 issuanceFee)",
                      "event LoanDrawnDown(address indexed account, uint256 id, uint256 amount)",
                      "event LoanPartiallyLiquidated(address indexed account, uint256 id, address liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanRepaymentMade(address indexed account, address indexed repayer, uint256 id, uint256 amountRepaid, uint256 amountAfter)",
                      "event MinCollateralUpdated(uint256 minCollateral)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addRewardsContracts(address rewardsContract, bytes32 synth)",
                      "function addSynths(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys)",
                      "function areSynthsAndCurrenciesSet(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys) view returns (bool)",
                      "function canOpenLoans() view returns (bool)",
                      "function claim(uint256 amount)",
                      "function close(uint256 id) returns (uint256 amount, uint256 collateral)",
                      "function collateralKey() view returns (bytes32)",
                      "function collateralRatio(uint256 id) view returns (uint256 cratio)",
                      "function deposit(address borrower, uint256 id) payable returns (uint256 principal, uint256 collateral)",
                      "function draw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function isResolverCached() view returns (bool)",
                      "function issueFeeRate() view returns (uint256)",
                      "function liquidate(address borrower, uint256 id, uint256 amount)",
                      "function liquidationAmount(uint256 id) view returns (uint256 liqAmount)",
                      "function loans(uint256) view returns (uint256 id, address account, uint256 collateral, bytes32 currency, uint256 amount, bool short, uint256 accruedInterest, uint256 interestIndex, uint256 lastInteraction)",
                      "function manager() view returns (address)",
                      "function maxLoan(uint256 amount, bytes32 currency) view returns (uint256 max)",
                      "function minCollateral() view returns (uint256)",
                      "function minCratio() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function open(uint256 amount, bytes32 currency) payable returns (uint256 id)",
                      "function owner() view returns (address)",
                      "function pendingWithdrawals(address) view returns (uint256)",
                      "function rebuildCache()",
                      "function repay(address borrower, uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setCanOpenLoans(bool _canOpenLoans)",
                      "function setIssueFeeRate(uint256 _issueFeeRate)",
                      "function setMinCollateral(uint256 _minCollateral)",
                      "function shortingRewards(bytes32) view returns (address)",
                      "function synths(uint256) view returns (bytes32)",
                      "function synthsByKey(bytes32) view returns (bytes32)",
                      "function withdraw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xd195b23cc7e197c2ce93f0f26e54d18a1a1e33f702c2986c821f448fabe7d383",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralErc20": {
                    "address": "0x0d63eB71ab86EB414eDcD800dD9C7f6279913Edc",
                    "sourceName": "contracts/CollateralErc20.sol",
                    "contractName": "CollateralErc20",
                    "abi": [
                      "constructor(address _owner, address _manager, address _resolver, bytes32 _collateralKey, uint256 _minCratio, uint256 _minCollateral, address _underlyingContract, uint256 _underlyingDecimals)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CanOpenLoansUpdated(bool canOpenLoans)",
                      "event CollateralDeposited(address indexed account, uint256 id, uint256 amountDeposited, uint256 collateralAfter)",
                      "event CollateralWithdrawn(address indexed account, uint256 id, uint256 amountWithdrawn, uint256 collateralAfter)",
                      "event IssueFeeRateUpdated(uint256 issueFeeRate)",
                      "event LoanClosed(address indexed account, uint256 id)",
                      "event LoanClosedByLiquidation(address indexed account, uint256 id, address indexed liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanClosedByRepayment(address indexed account, uint256 id, uint256 amountRepaid, uint256 collateralAfter)",
                      "event LoanCreated(address indexed account, uint256 id, uint256 amount, uint256 collateral, bytes32 currency, uint256 issuanceFee)",
                      "event LoanDrawnDown(address indexed account, uint256 id, uint256 amount)",
                      "event LoanPartiallyLiquidated(address indexed account, uint256 id, address liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanRepaymentMade(address indexed account, address indexed repayer, uint256 id, uint256 amountRepaid, uint256 amountAfter)",
                      "event MinCollateralUpdated(uint256 minCollateral)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addRewardsContracts(address rewardsContract, bytes32 synth)",
                      "function addSynths(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys)",
                      "function areSynthsAndCurrenciesSet(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys) view returns (bool)",
                      "function canOpenLoans() view returns (bool)",
                      "function close(uint256 id) returns (uint256 amount, uint256 collateral)",
                      "function collateralKey() view returns (bytes32)",
                      "function collateralRatio(uint256 id) view returns (uint256 cratio)",
                      "function deposit(address borrower, uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function draw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function isResolverCached() view returns (bool)",
                      "function issueFeeRate() view returns (uint256)",
                      "function liquidate(address borrower, uint256 id, uint256 amount)",
                      "function liquidationAmount(uint256 id) view returns (uint256 liqAmount)",
                      "function loans(uint256) view returns (uint256 id, address account, uint256 collateral, bytes32 currency, uint256 amount, bool short, uint256 accruedInterest, uint256 interestIndex, uint256 lastInteraction)",
                      "function manager() view returns (address)",
                      "function maxLoan(uint256 amount, bytes32 currency) view returns (uint256 max)",
                      "function minCollateral() view returns (uint256)",
                      "function minCratio() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function open(uint256 collateral, uint256 amount, bytes32 currency) returns (uint256 id)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function repay(address borrower, uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function scaleDownCollateral(uint256 collateral) view returns (uint256 scaledDown)",
                      "function scaleUpCollateral(uint256 collateral) view returns (uint256 scaledUp)",
                      "function setCanOpenLoans(bool _canOpenLoans)",
                      "function setIssueFeeRate(uint256 _issueFeeRate)",
                      "function setMinCollateral(uint256 _minCollateral)",
                      "function shortingRewards(bytes32) view returns (address)",
                      "function synths(uint256) view returns (bytes32)",
                      "function synthsByKey(bytes32) view returns (bytes32)",
                      "function underlyingContract() view returns (address)",
                      "function underlyingContractDecimals() view returns (uint256)",
                      "function withdraw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x3e82dbba6f3d36fc3c9786e107d5ca94cd25856963eac9a40d4b09ec03b1e96c",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralShort": {
                    "address": "0x60c3433763c59d4Be7684E2912Dda21BA0546a73",
                    "sourceName": "contracts/CollateralShort.sol",
                    "contractName": "CollateralShort",
                    "abi": [
                      "constructor(address _owner, address _manager, address _resolver, bytes32 _collateralKey, uint256 _minCratio, uint256 _minCollateral)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event CanOpenLoansUpdated(bool canOpenLoans)",
                      "event CollateralDeposited(address indexed account, uint256 id, uint256 amountDeposited, uint256 collateralAfter)",
                      "event CollateralWithdrawn(address indexed account, uint256 id, uint256 amountWithdrawn, uint256 collateralAfter)",
                      "event IssueFeeRateUpdated(uint256 issueFeeRate)",
                      "event LoanClosed(address indexed account, uint256 id)",
                      "event LoanClosedByLiquidation(address indexed account, uint256 id, address indexed liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanClosedByRepayment(address indexed account, uint256 id, uint256 amountRepaid, uint256 collateralAfter)",
                      "event LoanCreated(address indexed account, uint256 id, uint256 amount, uint256 collateral, bytes32 currency, uint256 issuanceFee)",
                      "event LoanDrawnDown(address indexed account, uint256 id, uint256 amount)",
                      "event LoanPartiallyLiquidated(address indexed account, uint256 id, address liquidator, uint256 amountLiquidated, uint256 collateralLiquidated)",
                      "event LoanRepaymentMade(address indexed account, address indexed repayer, uint256 id, uint256 amountRepaid, uint256 amountAfter)",
                      "event MinCollateralUpdated(uint256 minCollateral)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addRewardsContracts(address rewardsContract, bytes32 synth)",
                      "function addSynths(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys)",
                      "function areSynthsAndCurrenciesSet(bytes32[] _synthNamesInResolver, bytes32[] _synthKeys) view returns (bool)",
                      "function canOpenLoans() view returns (bool)",
                      "function close(uint256 id) returns (uint256 amount, uint256 collateral)",
                      "function closeWithCollateral(uint256 id) returns (uint256 amount, uint256 collateral)",
                      "function collateralKey() view returns (bytes32)",
                      "function collateralRatio(uint256 id) view returns (uint256 cratio)",
                      "function deposit(address borrower, uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function draw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function getShortAndCollateral(address, uint256 id) view returns (uint256 principal, uint256 collateral)",
                      "function isResolverCached() view returns (bool)",
                      "function issueFeeRate() view returns (uint256)",
                      "function liquidate(address borrower, uint256 id, uint256 amount)",
                      "function liquidationAmount(uint256 id) view returns (uint256 liqAmount)",
                      "function loans(uint256) view returns (uint256 id, address account, uint256 collateral, bytes32 currency, uint256 amount, bool short, uint256 accruedInterest, uint256 interestIndex, uint256 lastInteraction)",
                      "function manager() view returns (address)",
                      "function maxLoan(uint256 amount, bytes32 currency) view returns (uint256 max)",
                      "function minCollateral() view returns (uint256)",
                      "function minCratio() view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function open(uint256 collateral, uint256 amount, bytes32 currency) returns (uint256 id)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function repay(address borrower, uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function repayWithCollateral(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setCanOpenLoans(bool _canOpenLoans)",
                      "function setIssueFeeRate(uint256 _issueFeeRate)",
                      "function setMinCollateral(uint256 _minCollateral)",
                      "function shortingRewards(bytes32) view returns (address)",
                      "function synths(uint256) view returns (bytes32)",
                      "function synthsByKey(bytes32) view returns (bytes32)",
                      "function withdraw(uint256 id, uint256 amount) returns (uint256 principal, uint256 collateral)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xc34e586ccac313b7eacd555a4a3d70889076cc8dd0f5be5243eae985bd5d8799",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketManager": {
                    "address": "0xA73A7B754Ec870b3738D0654cA75b7d0eEbdb460",
                    "sourceName": "contracts/EmptyFuturesMarketManager.sol",
                    "contractName": "EmptyFuturesMarketManager",
                    "abi": [
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function addEndorsedAddresses(address[] addresses)",
                      "function allEndorsedAddresses() view returns (address[])",
                      "function allMarkets() view returns (address[])",
                      "function allMarkets(bool proxiedMarkets) view returns (address[])",
                      "function isEndorsed(address account) view returns (bool)",
                      "function marketForKey(bytes32 marketKey) view returns (address)",
                      "function markets(uint256 index, uint256 pageSize, bool proxiedMarkets) view returns (address[])",
                      "function markets(uint256 index, uint256 pageSize) view returns (address[])",
                      "function marketsForKeys(bytes32[] marketKeys) view returns (address[])",
                      "function numMarkets() view returns (uint256)",
                      "function numMarkets(bool proxiedMarkets) view returns (uint256)",
                      "function removeEndorsedAddresses(address[] addresses)",
                      "function totalDebt() view returns (uint256 debt, bool isInvalid)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xfe9fedc85a676a078aaaa66bea8141b7b6b54a4e728181ff437184853b9cc306",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthUtil": {
                    "address": "0x484Ae29E4b68d7625D7CBeeCA5Be51e6BA47c7c3",
                    "sourceName": "contracts/SynthUtil.sol",
                    "contractName": "SynthUtil",
                    "abi": [
                      "constructor(address resolver)",
                      "function addressResolverProxy() view returns (address)",
                      "function synthsBalances(address account) view returns (bytes32[], uint256[], uint256[])",
                      "function synthsRates() view returns (bytes32[], uint256[])",
                      "function synthsTotalSupplies() view returns (bytes32[], uint256[], uint256[])",
                      "function totalSynthsInKey(address account, bytes32 currencyKey) view returns (uint256 total)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0xa18f150aa8d87eeef0f627db6a0c4ee8f1061c3b0a0eff3ca36d47358f126af4",
                    "deployedOn": "run.synthetix"
                  },
                  "DappMaintenance": {
                    "address": "0x045ba2D58f16d39a91db70C1027080cde6f4E56f",
                    "sourceName": "contracts/DappMaintenance.sol",
                    "contractName": "DappMaintenance",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event SXMaintenance(bool isPaused)",
                      "event StakingMaintenance(bool isPaused)",
                      "function acceptOwnership()",
                      "function isPausedSX() view returns (bool)",
                      "function isPausedStaking() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function setMaintenanceModeAll(bool isPaused)",
                      "function setMaintenanceModeSX(bool isPaused)",
                      "function setMaintenanceModeStaking(bool isPaused)"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x00682eb106a68b888ebb18056d6a29f003cf4f11e157ffc34ab2705c20f9a243",
                    "deployedOn": "run.synthetix"
                  },
                  "DynamicSynthRedeemer": {
                    "address": "0x2e11a3638F12A37263b1B4226b61412f6BBB277c",
                    "sourceName": "contracts/DynamicSynthRedeemer.sol",
                    "contractName": "DynamicSynthRedeemer",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DiscountRateUpdated(uint256 discountRate)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RedemptionResumed()",
                      "event RedemptionSuspended()",
                      "event SynthRedeemed(address synth, address account, uint256 amountOfSynth, uint256 amountInsUSD)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function discountRate() view returns (uint256)",
                      "function getDiscountRate() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function redeem(bytes32 currencyKey)",
                      "function redeemAll(bytes32[] currencyKeys)",
                      "function redeemPartial(bytes32 currencyKey, uint256 amountOfSynth)",
                      "function redemptionActive() view returns (bool)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function resumeRedemption()",
                      "function setDiscountRate(uint256 _newRate)",
                      "function suspendRedemption()"
                    ],
                    "deployTxn": "https://sepolia.etherscan.io/tx/0x7d1ab1f52d7004c825c71f95b46e18ce0a2df2d4e685d6dca8856c7472883309",
                    "deployedOn": "run.synthetix"
                  }
                },
                "txns": {},
                "extras": {
                  "network": "sepolia"
                }
              },
              "v3": {
                "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
                "contracts": {
                  "AccountModule": {
                    "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "error ZeroAddress()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                    "deployTxnBlockNumber": "8374751",
                    "deployTimestamp": "1747828308",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "840868922"
                  },
                  "AccountTokenModule": {
                    "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                    "deployTxnBlockNumber": "6660715",
                    "deployTimestamp": "1725880512",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "49074705690"
                  },
                  "AssociateDebtModule": {
                    "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                    "deployTxnBlockNumber": "8374752",
                    "deployTimestamp": "1747828320",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "812346162"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                    "abi": [
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error Unauthorized(address addr)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1160601901"
                  },
                  "CcipReceiverModule": {
                    "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                    "abi": [
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error Unauthorized(address addr)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                    "deployTxnBlockNumber": "6660717",
                    "deployTimestamp": "1725880536",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "49006680826"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                    "abi": [
                      "error EmptyRevertReason()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error PositionOutOfBounds()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                    "deployTxnBlockNumber": "8374753",
                    "deployTimestamp": "1747828332",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "799886935"
                  },
                  "CollateralModule": {
                    "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                    "abi": [
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error AccountNotFound(uint128 accountId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                    "deployTxnBlockNumber": "8374754",
                    "deployTimestamp": "1747828344",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "802377814"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                    "deployTxnBlockNumber": "6660720",
                    "deployTimestamp": "1725880572",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "49967783440"
                  },
                  "FeatureFlagModule": {
                    "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                    "abi": [
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                    "deployTxnBlockNumber": "6660721",
                    "deployTimestamp": "1725880596",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "47712806352"
                  },
                  "IssueUSDModule": {
                    "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                    "abi": [
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                    "deployTxnBlockNumber": "8374755",
                    "deployTimestamp": "1747828356",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "794478182"
                  },
                  "LiquidationModule": {
                    "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error CannotScaleEmptyMapping()",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint256ToUint64()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PositionOutOfBounds()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                    "deployTxnBlockNumber": "8374756",
                    "deployTimestamp": "1747828368",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "816261199"
                  },
                  "MarketCollateralModule": {
                    "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                    "abi": [
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "error Unauthorized(address addr)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                    "deployTxnBlockNumber": "8374757",
                    "deployTimestamp": "1747828380",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "812078176"
                  },
                  "MarketManagerModule": {
                    "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                    "abi": [
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IncorrectMarketInterface(address market)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                    "deployTxnBlockNumber": "8374758",
                    "deployTimestamp": "1747828392",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "798490927"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                    "abi": [
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                    "deployTxnBlockNumber": "8374759",
                    "deployTimestamp": "1747828404",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "802346058"
                  },
                  "PoolModule": {
                    "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                    "deployTxnBlockNumber": "8374760",
                    "deployTimestamp": "1747828416",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "791076552"
                  },
                  "RewardsManagerModule": {
                    "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error RewardUnavailable(address distributor)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                    "deployTxnBlockNumber": "8374761",
                    "deployTimestamp": "1747828428",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "784183135"
                  },
                  "USDTokenModule": {
                    "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error Unauthorized(address addr)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                    "deployTxnBlockNumber": "6660731",
                    "deployTimestamp": "1725880740",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "53285251123"
                  },
                  "UtilsModule": {
                    "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                    "abi": [
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                    "deployTxnBlockNumber": "8374762",
                    "deployTimestamp": "1747828440",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "783578952"
                  },
                  "VaultModule": {
                    "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "error PoolNotFound(uint128 poolId)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                    "deployTxnBlockNumber": "8374763",
                    "deployTimestamp": "1747828452",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "756426945"
                  },
                  "InitialModuleBundle": {
                    "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/modules/InitialModuleBundle.sol",
                    "contractName": "InitialModuleBundle",
                    "deployedOn": "contract.InitialModuleBundle",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialCoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0x828EED723cAF0A8F822249231266E38dF614923C",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy",
                    "gasUsed": 185358,
                    "gasCost": "978908043"
                  },
                  "AccountRouter": {
                    "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployedOn": "router.AccountRouter",
                    "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                    "deployTxnBlockNumber": "8374764",
                    "deployTimestamp": "1747828464",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "769642764"
                  },
                  "CoreRouter": {
                    "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployedOn": "router.CoreRouter",
                    "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                    "deployTxnBlockNumber": "8374765",
                    "deployTimestamp": "1747828476",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621270,
                    "gasCost": "779829074"
                  },
                  "USDRouter": {
                    "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployedOn": "router.USDRouter",
                    "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                    "deployTxnBlockNumber": "8374766",
                    "deployTimestamp": "1747828488",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087124,
                    "gasCost": "790603927"
                  },
                  "CoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "constructorArgs": [
                      "<%= contracts.InitialModuleBundle.address %>",
                      "<%= settings.owner %>"
                    ],
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "AccountProxy": {
                    "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "USDProxy": {
                    "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "settings": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                        "abi": [
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                        "deployTxnBlockNumber": "8374748",
                        "deployTimestamp": "1747828272",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "807273578"
                      },
                      "CoreModule": {
                        "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [
                          "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                          "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployedOn": "router.OracleRouter",
                        "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                        "deployTxnBlockNumber": "8374749",
                        "deployTimestamp": "1747828284",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "866245566"
                      },
                      "Proxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      }
                    },
                    "imports": {
                      "trusted_multicall_forwarder": {
                        "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                        "tags": [
                          "latest"
                        ],
                        "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                        "preset": "with-oracle-manager",
                        "settings": {
                          "salt": "salt"
                        },
                        "contracts": {
                          "TrustedMulticallForwarder": {
                            "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                            "abi": [
                              "constructor()",
                              "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                              "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                              "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                              "function getBasefee() view returns (uint256 basefee)",
                              "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                              "function getBlockNumber() view returns (uint256 blockNumber)",
                              "function getChainId() view returns (uint256 chainid)",
                              "function getCurrentBlockCoinbase() view returns (address coinbase)",
                              "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                              "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                              "function getEthBalance(address addr) view returns (uint256 balance)",
                              "function getLastBlockHash() view returns (bytes32 blockHash)",
                              "function getPrevRandao() view returns (uint256 prevrandao)",
                              "function nonces(address owner) view returns (uint256)",
                              "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                              "event EIP712DomainChanged()",
                              "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                              "error AddressInsufficientBalance(address account)",
                              "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                              "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                              "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                              "error ERC2771UntrustfulTarget(address target, address forwarder)",
                              "error FailedInnerCall()",
                              "error InvalidAccountNonce(address account, uint256 currentNonce)",
                              "error InvalidShortString()",
                              "error StringTooLong(string str)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "src/TrustedMulticallForwarder.sol",
                            "contractName": "TrustedMulticallForwarder",
                            "deployedOn": "contract.TrustedMulticallForwarder",
                            "gasUsed": 0,
                            "gasCost": "0"
                          }
                        },
                        "extras": {
                          "salt": "salt"
                        }
                      }
                    },
                    "settings": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    },
                    "txns": {
                      "upgrade_proxy": {
                        "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                        "blockNumber": "8374750",
                        "timestamp": "1747828296",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                                "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55420,
                        "gasCost": "863204254",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle",
                    "gasUsed": 108479,
                    "gasCost": "922529803",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                    "blockNumber": "8374767",
                    "timestamp": "1747828500",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                            "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51327,
                    "gasCost": "785077138",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 56949,
                    "gasCost": "1117962692",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 57009,
                    "gasCost": "1081589799",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_createAccount": {
                    "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 57021,
                    "gasCost": "1189291565",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 57081,
                    "gasCost": "1145067438",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_deposit": {
                    "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 56949,
                    "gasCost": "1099485069",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 57141,
                    "gasCost": "1050556709",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 57057,
                    "gasCost": "997930950",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidate": {
                    "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 56973,
                    "gasCost": "1064136427",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                    "blockNumber": "8374768",
                    "timestamp": "1747828512",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "769840723",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 57033,
                    "gasCost": "1013537198",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                    "blockNumber": "8374769",
                    "timestamp": "1747828524",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "745322710",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 56949,
                    "gasCost": "977776751",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdraw": {
                    "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 56961,
                    "gasCost": "1025829153",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 57153,
                    "gasCost": "993756197",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 57069,
                    "gasCost": "960143044",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_account": {
                    "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                    "blockNumber": "8374770",
                    "timestamp": "1747828536",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80746,
                    "gasCost": "743339977",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_usd": {
                    "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                    "blockNumber": "8374771",
                    "timestamp": "1747828548",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94076,
                    "gasCost": "728100935",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "set_oracle_manager": {
                    "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager",
                    "gasUsed": 54810,
                    "gasCost": "979601782",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            {
                              "depositingEnabled": true,
                              "issuanceRatioD18": "10000000000000000000",
                              "liquidationRatioD18": "10000000000000000000",
                              "liquidationRewardD18": "0",
                              "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                              "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                            }
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral",
                    "gasUsed": 240627,
                    "gasCost": "1006144889",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                }
              }
            },
            "txns": {
              "setFeatureFlagPool": {
                "hash": "0x3380b95b9e87c9542ce32affe199ff467761714eee66a6a47e4df5fd2ecdd5e6",
                "events": {},
                "deployedOn": "invoke.setFeatureFlagPool",
                "gasUsed": 35382,
                "gasCost": "1024363105",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "upgradeProxy": {
                "hash": "0xa0caa874cd8df4a5fcd5edf1c4694b43ace71ffb6b4d49726c7085d4646ebefd",
                "blockNumber": "8374776",
                "timestamp": "1747828608",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776",
                        "0x466f123470f535E4EE4cbd60ae5C0379d2D23c10"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeProxy",
                "gasUsed": 47819,
                "gasCost": "647557925",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "associate": {
                "hash": "0x4dc94daafd912752f9437e5ba4c597846462671aa05449c3e94252b2dcd8bf4c",
                "events": {
                  "AddressImported": [
                    {
                      "name": "AddressImported",
                      "args": [
                        "0x4c65676163794d61726b65740000000000000000000000000000000000000000",
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.associate",
                "gasUsed": 48861,
                "gasCost": "1066642677",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "authorizedBroker": {
                "hash": "0x64542fea567ee97227b0acde182eb5eaabdc41589c6afd145b504512862fab8a",
                "events": {
                  "ChangeAuthorizedBroker": [
                    {
                      "name": "ChangeAuthorizedBroker",
                      "args": [
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.authorizedBroker",
                "gasUsed": 47570,
                "gasCost": "1038418518",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setFeatureFlagAssociateDebt": {
                "hash": "0xf3b8c7d70757ac1b9bd67ebc769ab6ff9f9ca3a741c872f9e4c0c4d9f7315667",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x6173736f63696174654465627400000000000000000000000000000000000000",
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagAssociateDebt",
                "gasUsed": 101609,
                "gasCost": "1167074588",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setFeatureFlagMarket": {
                "hash": "0x535eea053e943e4aa23bdcb2fb4ab406a4437705dbbcae646c49674bda81f250",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagMarket",
                "gasUsed": 101621,
                "gasCost": "1233099924",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setSystemAddresses": {
                "hash": "0x1a960a64b8305f9316b3dec4f5edc4e99cb49a3db3ba4749e11b2d12af891a66",
                "blockNumber": "6447864",
                "timestamp": "1722946032",
                "events": {},
                "deployedOn": "invoke.setSystemAddresses",
                "gasUsed": 76047,
                "gasCost": "29017902633",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "registerMarket": {
                "hash": "0xde733988a1a291ad03498129652e11e422698ecfce3a3698f0ac3248ed583aae",
                "events": {
                  "MarketRegistered": [
                    {
                      "name": "MarketRegistered",
                      "args": [
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776",
                        "1",
                        "0x94c53500d38f95dEea37Bada599d54D8DabEF776"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.registerMarket",
                "gasUsed": 212989,
                "gasCost": "1184824585",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setConfigAssociateUnlimitedDebt": {
                "hash": "0x473e481bc29eaa5e8ea8d2411c76ad0bcf4092dc209c1359ca635babff8af01b",
                "blockNumber": "6447873",
                "timestamp": "1722946152",
                "events": {},
                "deployedOn": "invoke.setConfigAssociateUnlimitedDebt",
                "gasUsed": 55209,
                "gasCost": "27022620651",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "pool_owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "sc_pool_id": "1",
              "v2x_package": "synthetix:2.101.2",
              "v3_package": "synthetix:3.3.15",
              "marketId": "1"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "provision.spotFactory": {
      "artifacts": {
        "imports": {
          "spotFactory": {
            "url": "ipfs://QmasaRCA1Dkp8HpSqukPGSbfH9WPepf9sAxrivNKoLbc74",
            "tags": [
              "latest"
            ],
            "target": "synthetix-spot-market:3.12.2@main",
            "preset": "main",
            "contracts": {
              "AsyncOrderConfigurationModule": {
                "address": "0xd9E3049e9B31d08708c061B5Dd7b7A3f8E9Ca2f2",
                "abi": [
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                  "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                  "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                  "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x469997b2f1af1eea54049568c53a5adff7d45e7969bcb73f742121d872480340",
                "deployTxnBlockNumber": "8374781",
                "deployTimestamp": "1747828668",
                "sourceName": "contracts/modules/AsyncOrderConfigurationModule.sol",
                "contractName": "AsyncOrderConfigurationModule",
                "deployedOn": "contract.AsyncOrderConfigurationModule",
                "gasUsed": 896430,
                "gasCost": "653912843"
              },
              "AsyncOrderModule": {
                "address": "0x208b65b1520F1B7356f3f752C637d56CeE268815",
                "abi": [
                  "error FeatureUnavailable(bytes32 which)",
                  "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                  "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                  "error InvalidAsyncTransactionType(uint8 transactionType)",
                  "error InvalidClaim(uint256 asyncOrderId)",
                  "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                  "error OverflowInt256ToUint256()",
                  "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                  "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                  "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                  "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                  "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x9b2dc16c231b2f5e06f39104f7e5240048b1fd3b87a172393ca2c04e63dc4763",
                "deployTxnBlockNumber": "8374782",
                "deployTimestamp": "1747828680",
                "sourceName": "contracts/modules/AsyncOrderModule.sol",
                "contractName": "AsyncOrderModule",
                "deployedOn": "contract.AsyncOrderModule",
                "gasUsed": 1395455,
                "gasCost": "658278909"
              },
              "AsyncOrderSettlementModule": {
                "address": "0x9aC0A92aFdEc87BC08B0D31B3f200A5FE5D13A8f",
                "abi": [
                  "error InvalidClaim(uint256 asyncOrderId)",
                  "error InvalidSettlementStrategy(uint8 strategyType)",
                  "error InvalidVerificationResponse()",
                  "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                  "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                  "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint64()",
                  "error SettlementStrategyNotFound(uint8 strategyType)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                  "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x2aac05e29796c74246b9138899bdbc7a41c70eb0d1bfb10a574631cc2ceaf22c",
                "deployTxnBlockNumber": "8374783",
                "deployTimestamp": "1747828692",
                "sourceName": "contracts/modules/AsyncOrderSettlementModule.sol",
                "contractName": "AsyncOrderSettlementModule",
                "deployedOn": "contract.AsyncOrderSettlementModule",
                "gasUsed": 1981826,
                "gasCost": "626075294"
              },
              "AtomicOrderModule": {
                "address": "0xdBc86c71044DD010BA6722a8E46131A2d6046b94",
                "abi": [
                  "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                  "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidPrices()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                  "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x0817dbd04fdae29094316abd97c970d4fa0509dbf0200f2f09d2a9f6b98d8510",
                "deployTxnBlockNumber": "8374784",
                "deployTimestamp": "1747828704",
                "sourceName": "contracts/modules/AtomicOrderModule.sol",
                "contractName": "AtomicOrderModule",
                "deployedOn": "contract.AtomicOrderModule",
                "gasUsed": 2345976,
                "gasCost": "637234151"
              },
              "CoreModule": {
                "address": "0xf7b6f25ED860125a315d642BAF925eACB001A0FC",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xe32c55d4c380474f6ab8b84db8653d5e1d3adc1cffd0e7e7038c6019fe2608da",
                "sourceName": "contracts/modules/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule",
                "gasUsed": 940287,
                "gasCost": "1062045394"
              },
              "FeatureFlagModule": {
                "address": "0x1258bB2eD01d738944F1d4F5F8aC53dfc7F6D2c7",
                "abi": [
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x5d9c3deb8b674c8358bd4a67f4992d9537024e1096133622408ec1a8bc197758",
                "deployTxnBlockNumber": "8374785",
                "deployTimestamp": "1747828716",
                "sourceName": "contracts/modules/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 765166,
                "gasCost": "613995746"
              },
              "MarketConfigurationModule": {
                "address": "0x0441630beCbD73d92D15917D150cBD7d488ec935",
                "abi": [
                  "error InvalidCollateralLeverage(uint256)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidWrapperFees()",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                  "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                  "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                  "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                  "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                  "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                  "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                  "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                  "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                  "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                  "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                  "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                  "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                  "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                  "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                  "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                  "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                  "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                  "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                  "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                  "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x7b96e81487b509d987db112d46e329f165ca6d2d8e93b0ed11b3408013ea3b06",
                "deployTxnBlockNumber": "8374786",
                "deployTimestamp": "1747828728",
                "sourceName": "contracts/modules/MarketConfigurationModule.sol",
                "contractName": "MarketConfigurationModule",
                "deployedOn": "contract.MarketConfigurationModule",
                "gasUsed": 720683,
                "gasCost": "628539006"
              },
              "SpotMarketFactoryModule": {
                "address": "0xBA9734649d01099eCc41C9da064781440Fd48419",
                "abi": [
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidMarketOwner()",
                  "error InvalidSynthImplementation(uint256 synthImplementation)",
                  "error InvalidTransactionTypeIndex(uint128 txnType)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error NotNominated(address addr)",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "error OverflowInt256ToUint256()",
                  "error Unauthorized(address addr)",
                  "error ZeroAddress()",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                  "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                  "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                  "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                  "event SynthImplementationSet(address synthImplementation)",
                  "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                  "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                  "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                  "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                  "function acceptMarketOwnership(uint128 synthMarketId)",
                  "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function getSynth(uint128 marketId) view returns (address synthAddress)",
                  "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                  "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                  "function name(uint128 marketId) view returns (string marketName)",
                  "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "function renounceMarketNomination(uint128 synthMarketId)",
                  "function renounceMarketOwnership(uint128 synthMarketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                  "function setDecayRate(uint128 marketId, uint256 rate)",
                  "function setSynthImplementation(address synthImplementation)",
                  "function setSynthetix(address synthetix)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                  "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function upgradeSynthImpl(uint128 marketId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x54f62a76438c6992fbb4f7ff6892d2487737de2d412e5fa04b746a09de84c970",
                "deployTxnBlockNumber": "8374787",
                "deployTimestamp": "1747828740",
                "sourceName": "contracts/modules/SpotMarketFactoryModule.sol",
                "contractName": "SpotMarketFactoryModule",
                "deployedOn": "contract.SpotMarketFactoryModule",
                "gasUsed": 2347962,
                "gasCost": "609576525"
              },
              "SynthTokenModule": {
                "address": "0x086B525020ed0b4487a8ed4a91f20dC69a2e4f32",
                "abi": [
                  "error AlreadyInitialized()",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientBalance(uint256 required, uint256 existing)",
                  "error InvalidDecayRate()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error Unauthorized(address addr)",
                  "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                  "event Transfer(address indexed from, address indexed to, uint256 amount)",
                  "function advanceEpoch() returns (uint256)",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address user) view returns (uint256)",
                  "function burn(address from, uint256 amount)",
                  "function decayRate() view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 amount)",
                  "function name() view returns (string)",
                  "function setAllowance(address from, address spender, uint256 amount)",
                  "function setDecayRate(uint256 _rate)",
                  "function symbol() view returns (string)",
                  "function totalShares() view returns (uint256)",
                  "function totalSupply() view returns (uint256 supply)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x1f5533b3098778f5c1b514bdb5602f41915a1cb2d5d3ee17dd569fb7bfbe8596",
                "deployTxnBlockNumber": "8374788",
                "deployTimestamp": "1747828752",
                "sourceName": "contracts/modules/token/SynthTokenModule.sol",
                "contractName": "SynthTokenModule",
                "deployedOn": "contract.SynthTokenModule",
                "gasUsed": 1207447,
                "gasCost": "609228985"
              },
              "WrapperModule": {
                "address": "0x9FD3411B3592C3441A0C9E1Ee2dd222dF87F6E44",
                "abi": [
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                  "error InvalidCollateralType(address configuredCollateralType)",
                  "error InvalidMarket(uint128 marketId)",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                  "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                  "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x828460129323be46015329c388b7e716131f9805c2f0735153dd86e3a9e06422",
                "deployTxnBlockNumber": "8374789",
                "deployTimestamp": "1747828764",
                "sourceName": "contracts/modules/WrapperModule.sol",
                "contractName": "WrapperModule",
                "deployedOn": "contract.WrapperModule",
                "gasUsed": 1892668,
                "gasCost": "614094478"
              },
              "InitialSpotMarketProxy": {
                "address": "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [
                  "0xf7b6f25ED860125a315d642BAF925eACB001A0FC",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xbd25f6af1a949a6aa6e70bd0529608ebb5d1f48d57a2eef3aa52c036b2c7eac7",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialSpotMarketProxy",
                "gasUsed": 248149,
                "gasCost": "996572681"
              },
              "SpotMarketRouter": {
                "address": "0x49232bd36374bd5e129dd2e91da18a81dc87832d",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidMarketOwner()",
                  "error InvalidSynthImplementation(uint256 synthImplementation)",
                  "error InvalidTransactionTypeIndex(uint128 txnType)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "error OverflowInt256ToUint256()",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                  "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                  "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                  "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                  "event SynthImplementationSet(address synthImplementation)",
                  "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                  "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                  "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                  "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                  "function acceptMarketOwnership(uint128 synthMarketId)",
                  "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function getSynth(uint128 marketId) view returns (address synthAddress)",
                  "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                  "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                  "function name(uint128 marketId) view returns (string marketName)",
                  "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "function renounceMarketNomination(uint128 synthMarketId)",
                  "function renounceMarketOwnership(uint128 synthMarketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                  "function setDecayRate(uint128 marketId, uint256 rate)",
                  "function setSynthImplementation(address synthImplementation)",
                  "function setSynthetix(address synthetix)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                  "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function upgradeSynthImpl(uint128 marketId)",
                  "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                  "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                  "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidPrices()",
                  "error OverflowUint256ToInt256()",
                  "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                  "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                  "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                  "error InvalidAsyncTransactionType(uint8 transactionType)",
                  "error InvalidClaim(uint256 asyncOrderId)",
                  "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                  "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                  "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                  "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                  "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                  "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                  "error InvalidSettlementStrategy(uint8 strategyType)",
                  "error InvalidVerificationResponse()",
                  "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                  "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                  "error OverflowUint256ToUint64()",
                  "error SettlementStrategyNotFound(uint8 strategyType)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                  "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                  "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                  "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                  "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error InvalidCollateralType(address configuredCollateralType)",
                  "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                  "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                  "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error InvalidCollateralLeverage(uint256)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidWrapperFees()",
                  "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                  "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                  "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                  "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                  "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                  "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                  "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                  "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                  "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                  "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                  "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                  "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                  "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                  "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                  "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                  "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                  "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                  "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                  "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                  "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                  "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                ],
                "deployedOn": "router.SpotMarketRouter",
                "deployTxnHash": "0x97ca893dc905e4f249fd9ffc72b18beccd572520d54d9ec88ecfd70a73836132",
                "deployTxnBlockNumber": "8374790",
                "deployTimestamp": "1747828776",
                "contractName": "SpotMarketRouter",
                "sourceName": "SpotMarketRouter.sol",
                "gasUsed": 3599996,
                "gasCost": "601691546"
              },
              "SynthRouter": {
                "address": "0x3bf31896b2cc5e18af9bb81cd007a1ce8613418c",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error AlreadyInitialized()",
                  "error InsufficientAllowance(uint256 required, uint256 existing)",
                  "error InsufficientBalance(uint256 required, uint256 existing)",
                  "error InvalidDecayRate()",
                  "error InvalidParameter(string parameter, string reason)",
                  "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                  "event Transfer(address indexed from, address indexed to, uint256 amount)",
                  "function advanceEpoch() returns (uint256)",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address user) view returns (uint256)",
                  "function burn(address from, uint256 amount)",
                  "function decayRate() view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 amount)",
                  "function name() view returns (string)",
                  "function setAllowance(address from, address spender, uint256 amount)",
                  "function setDecayRate(uint256 _rate)",
                  "function symbol() view returns (string)",
                  "function totalShares() view returns (uint256)",
                  "function totalSupply() view returns (uint256 supply)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                ],
                "deployedOn": "router.SynthRouter",
                "deployTxnHash": "0xbc97bcadad9b7556e903c7965fabe8aa442787d0a84e9254fb4bb8a3638045b0",
                "deployTxnBlockNumber": "8374791",
                "deployTimestamp": "1747828788",
                "contractName": "SynthRouter",
                "sourceName": "SynthRouter.sol",
                "gasUsed": 1930195,
                "gasCost": "588839251"
              },
              "SpotMarketProxy": {
                "address": "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidMarketOwner()",
                  "error InvalidSynthImplementation(uint256 synthImplementation)",
                  "error InvalidTransactionTypeIndex(uint128 txnType)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error OnlyMarketOwner(address marketOwner, address sender)",
                  "error OverflowInt256ToUint256()",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                  "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                  "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                  "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                  "event SynthImplementationSet(address synthImplementation)",
                  "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                  "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                  "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                  "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                  "function acceptMarketOwnership(uint128 synthMarketId)",
                  "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                  "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function getSynth(uint128 marketId) view returns (address synthAddress)",
                  "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                  "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                  "function name(uint128 marketId) view returns (string marketName)",
                  "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "function renounceMarketNomination(uint128 synthMarketId)",
                  "function renounceMarketOwnership(uint128 synthMarketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                  "function setDecayRate(uint128 marketId, uint256 rate)",
                  "function setSynthImplementation(address synthImplementation)",
                  "function setSynthetix(address synthetix)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                  "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                  "function upgradeSynthImpl(uint128 marketId)",
                  "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                  "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                  "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidPrices()",
                  "error OverflowUint256ToInt256()",
                  "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                  "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                  "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                  "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                  "error InvalidAsyncTransactionType(uint8 transactionType)",
                  "error InvalidClaim(uint256 asyncOrderId)",
                  "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                  "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                  "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                  "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                  "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                  "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                  "error InvalidSettlementStrategy(uint8 strategyType)",
                  "error InvalidVerificationResponse()",
                  "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                  "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                  "error OverflowUint256ToUint64()",
                  "error SettlementStrategyNotFound(uint8 strategyType)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                  "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                  "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                  "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                  "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                  "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error InvalidCollateralType(address configuredCollateralType)",
                  "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                  "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                  "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                  "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                  "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                  "error InvalidCollateralLeverage(uint256)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidWrapperFees()",
                  "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                  "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                  "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                  "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                  "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                  "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                  "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                  "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                  "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                  "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                  "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                  "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                  "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                  "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                  "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                  "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                  "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                  "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                  "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                  "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                  "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                  "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                  "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.CoreModule.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgradeSpotMarketProxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix",
              "synthetixPreset": "main"
            },
            "imports": {
              "synthetix": {
                "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
                "contracts": {
                  "AccountModule": {
                    "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "error ZeroAddress()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                    "deployTxnBlockNumber": "8374751",
                    "deployTimestamp": "1747828308",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "840868922"
                  },
                  "AccountTokenModule": {
                    "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                    "deployTxnBlockNumber": "6660715",
                    "deployTimestamp": "1725880512",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "49074705690"
                  },
                  "AssociateDebtModule": {
                    "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                    "deployTxnBlockNumber": "8374752",
                    "deployTimestamp": "1747828320",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "812346162"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                    "abi": [
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error Unauthorized(address addr)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1160601901"
                  },
                  "CcipReceiverModule": {
                    "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                    "abi": [
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error Unauthorized(address addr)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                    "deployTxnBlockNumber": "6660717",
                    "deployTimestamp": "1725880536",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "49006680826"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                    "abi": [
                      "error EmptyRevertReason()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error PositionOutOfBounds()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                    "deployTxnBlockNumber": "8374753",
                    "deployTimestamp": "1747828332",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "799886935"
                  },
                  "CollateralModule": {
                    "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                    "abi": [
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error AccountNotFound(uint128 accountId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                    "deployTxnBlockNumber": "8374754",
                    "deployTimestamp": "1747828344",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "802377814"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                    "deployTxnBlockNumber": "6660720",
                    "deployTimestamp": "1725880572",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "49967783440"
                  },
                  "FeatureFlagModule": {
                    "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                    "abi": [
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                    "deployTxnBlockNumber": "6660721",
                    "deployTimestamp": "1725880596",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "47712806352"
                  },
                  "IssueUSDModule": {
                    "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                    "abi": [
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                    "deployTxnBlockNumber": "8374755",
                    "deployTimestamp": "1747828356",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "794478182"
                  },
                  "LiquidationModule": {
                    "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error CannotScaleEmptyMapping()",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint256ToUint64()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PositionOutOfBounds()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                    "deployTxnBlockNumber": "8374756",
                    "deployTimestamp": "1747828368",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "816261199"
                  },
                  "MarketCollateralModule": {
                    "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                    "abi": [
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "error Unauthorized(address addr)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                    "deployTxnBlockNumber": "8374757",
                    "deployTimestamp": "1747828380",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "812078176"
                  },
                  "MarketManagerModule": {
                    "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                    "abi": [
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IncorrectMarketInterface(address market)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                    "deployTxnBlockNumber": "8374758",
                    "deployTimestamp": "1747828392",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "798490927"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                    "abi": [
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                    "deployTxnBlockNumber": "8374759",
                    "deployTimestamp": "1747828404",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "802346058"
                  },
                  "PoolModule": {
                    "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                    "deployTxnBlockNumber": "8374760",
                    "deployTimestamp": "1747828416",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "791076552"
                  },
                  "RewardsManagerModule": {
                    "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error RewardUnavailable(address distributor)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                    "deployTxnBlockNumber": "8374761",
                    "deployTimestamp": "1747828428",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "784183135"
                  },
                  "USDTokenModule": {
                    "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error Unauthorized(address addr)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                    "deployTxnBlockNumber": "6660731",
                    "deployTimestamp": "1725880740",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "53285251123"
                  },
                  "UtilsModule": {
                    "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                    "abi": [
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                    "deployTxnBlockNumber": "8374762",
                    "deployTimestamp": "1747828440",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "783578952"
                  },
                  "VaultModule": {
                    "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "error PoolNotFound(uint128 poolId)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                    "deployTxnBlockNumber": "8374763",
                    "deployTimestamp": "1747828452",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "756426945"
                  },
                  "InitialModuleBundle": {
                    "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/modules/InitialModuleBundle.sol",
                    "contractName": "InitialModuleBundle",
                    "deployedOn": "contract.InitialModuleBundle",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialCoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0x828EED723cAF0A8F822249231266E38dF614923C",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy",
                    "gasUsed": 185358,
                    "gasCost": "978908043"
                  },
                  "AccountRouter": {
                    "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployedOn": "router.AccountRouter",
                    "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                    "deployTxnBlockNumber": "8374764",
                    "deployTimestamp": "1747828464",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "769642764"
                  },
                  "CoreRouter": {
                    "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployedOn": "router.CoreRouter",
                    "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                    "deployTxnBlockNumber": "8374765",
                    "deployTimestamp": "1747828476",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621270,
                    "gasCost": "779829074"
                  },
                  "USDRouter": {
                    "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployedOn": "router.USDRouter",
                    "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                    "deployTxnBlockNumber": "8374766",
                    "deployTimestamp": "1747828488",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087124,
                    "gasCost": "790603927"
                  },
                  "CoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "constructorArgs": [
                      "<%= contracts.InitialModuleBundle.address %>",
                      "<%= settings.owner %>"
                    ],
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "AccountProxy": {
                    "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "USDProxy": {
                    "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "settings": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                        "abi": [
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                        "deployTxnBlockNumber": "8374748",
                        "deployTimestamp": "1747828272",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "807273578"
                      },
                      "CoreModule": {
                        "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [
                          "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                          "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployedOn": "router.OracleRouter",
                        "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                        "deployTxnBlockNumber": "8374749",
                        "deployTimestamp": "1747828284",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "866245566"
                      },
                      "Proxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      }
                    },
                    "imports": {
                      "trusted_multicall_forwarder": {
                        "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                        "tags": [
                          "latest"
                        ],
                        "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                        "preset": "with-oracle-manager",
                        "settings": {
                          "salt": "salt"
                        },
                        "contracts": {
                          "TrustedMulticallForwarder": {
                            "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                            "abi": [
                              "constructor()",
                              "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                              "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                              "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                              "function getBasefee() view returns (uint256 basefee)",
                              "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                              "function getBlockNumber() view returns (uint256 blockNumber)",
                              "function getChainId() view returns (uint256 chainid)",
                              "function getCurrentBlockCoinbase() view returns (address coinbase)",
                              "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                              "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                              "function getEthBalance(address addr) view returns (uint256 balance)",
                              "function getLastBlockHash() view returns (bytes32 blockHash)",
                              "function getPrevRandao() view returns (uint256 prevrandao)",
                              "function nonces(address owner) view returns (uint256)",
                              "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                              "event EIP712DomainChanged()",
                              "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                              "error AddressInsufficientBalance(address account)",
                              "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                              "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                              "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                              "error ERC2771UntrustfulTarget(address target, address forwarder)",
                              "error FailedInnerCall()",
                              "error InvalidAccountNonce(address account, uint256 currentNonce)",
                              "error InvalidShortString()",
                              "error StringTooLong(string str)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "src/TrustedMulticallForwarder.sol",
                            "contractName": "TrustedMulticallForwarder",
                            "deployedOn": "contract.TrustedMulticallForwarder",
                            "gasUsed": 0,
                            "gasCost": "0"
                          }
                        },
                        "extras": {
                          "salt": "salt"
                        }
                      }
                    },
                    "settings": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    },
                    "txns": {
                      "upgrade_proxy": {
                        "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                        "blockNumber": "8374750",
                        "timestamp": "1747828296",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                                "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55420,
                        "gasCost": "863204254",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle",
                    "gasUsed": 108479,
                    "gasCost": "922529803",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                    "blockNumber": "8374767",
                    "timestamp": "1747828500",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                            "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51327,
                    "gasCost": "785077138",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 56949,
                    "gasCost": "1117962692",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 57009,
                    "gasCost": "1081589799",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_createAccount": {
                    "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 57021,
                    "gasCost": "1189291565",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 57081,
                    "gasCost": "1145067438",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_deposit": {
                    "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 56949,
                    "gasCost": "1099485069",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 57141,
                    "gasCost": "1050556709",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 57057,
                    "gasCost": "997930950",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidate": {
                    "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 56973,
                    "gasCost": "1064136427",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                    "blockNumber": "8374768",
                    "timestamp": "1747828512",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "769840723",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 57033,
                    "gasCost": "1013537198",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                    "blockNumber": "8374769",
                    "timestamp": "1747828524",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "745322710",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 56949,
                    "gasCost": "977776751",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdraw": {
                    "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 56961,
                    "gasCost": "1025829153",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 57153,
                    "gasCost": "993756197",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 57069,
                    "gasCost": "960143044",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_account": {
                    "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                    "blockNumber": "8374770",
                    "timestamp": "1747828536",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80746,
                    "gasCost": "743339977",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_usd": {
                    "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                    "blockNumber": "8374771",
                    "timestamp": "1747828548",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94076,
                    "gasCost": "728100935",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "set_oracle_manager": {
                    "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager",
                    "gasUsed": 54810,
                    "gasCost": "979601782",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            {
                              "depositingEnabled": true,
                              "issuanceRatioD18": "10000000000000000000",
                              "liquidationRatioD18": "10000000000000000000",
                              "liquidationRewardD18": "0",
                              "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                              "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                            }
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral",
                    "gasUsed": 240627,
                    "gasCost": "1006144889",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                }
              }
            },
            "txns": {
              "upgradeSpotMarketProxy": {
                "hash": "0x72d21781ed551b109fab7b33ad127ed7e85d6f1dce732ef93b35f56052527031",
                "blockNumber": "8374792",
                "timestamp": "1747828800",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                        "0x49232BD36374bD5e129dd2E91DA18a81dC87832D"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeSpotMarketProxy",
                "gasUsed": 55639,
                "gasCost": "608426990",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "addCreateSynthToFeatureFlag": {
                "hash": "0x6b7787cb6cae5d795709e0aee1d57c5084b46e154cc93201afa5f02e6b8a1db0",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x63726561746553796e7468000000000000000000000000000000000000000000",
                        "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addCreateSynthToFeatureFlag",
                "gasUsed": 101741,
                "gasCost": "1110072932",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "addSpotMarketToFeatureFlag": {
                "hash": "0x7650a7a9ca46d4c52bed108d606787392706e162f534ba8d46cf605e0c9e0ffa",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addSpotMarketToFeatureFlag",
                "gasUsed": 84533,
                "gasCost": "1131265221",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setSynthImplementation": {
                "hash": "0xed4111894e8ec3ffb62c70b2cccf49077e135f7b5fcf06b16b8ddb1773771a16",
                "blockNumber": "8374793",
                "timestamp": "1747828812",
                "events": {
                  "SynthImplementationSet": [
                    {
                      "name": "SynthImplementationSet",
                      "args": [
                        "0x3BF31896b2CC5E18AF9Bb81Cd007A1ce8613418C"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setSynthImplementation",
                "gasUsed": 39116,
                "gasCost": "594183825",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "setSynthetixSystem": {
                "hash": "0x2f1ed3ed26dcf2e170f8f5730fb6b09ba331b7952621b856caeecd9669829d03",
                "events": {
                  "SynthetixSystemSet": [
                    {
                      "name": "SynthetixSystemSet",
                      "args": [
                        "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                        "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                        "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setSynthetixSystem",
                "gasUsed": 124255,
                "gasCost": "1102958879",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix",
              "synthetixPreset": "main"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.createScPool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "createScPool": {
            "hash": "0xde1dbfab920f874fc7a89f07c4f99ab77cacfcabd71b98b6bf43c76f031ec2bf",
            "events": {
              "PoolCreated": [
                {
                  "name": "PoolCreated",
                  "args": [
                    "1",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.createScPool",
            "gasUsed": 80299,
            "gasCost": "1194035649",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "8bd5d7276943095354d8bbf770dde5ec",
      "version": 7
    },
    "invoke.createUsdeSynth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "createUsdeSynth": {
            "hash": "0xf930426b662d88f495087738e849759d9b50531f3eb36219dd1ae186d5baef94",
            "events": {
              "AssociatedSystemSet": [
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x6572633230000000000000000000000000000000000000000000000000000000",
                    "0xb8dbcf7ce16e156a8d43319ed5b90e37f573e563159aad9f32277ff88f97dacb",
                    "0x3A12E3f802437CD3A9755386BEd65Cca751a730e",
                    "0xb59D0ECd1071e41922B612663021fb236785a76f"
                  ]
                }
              ],
              "SynthRegistered": [
                {
                  "name": "SynthRegistered",
                  "args": [
                    "2",
                    "0x3A12E3f802437CD3A9755386BEd65Cca751a730e"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.createUsdeSynth",
            "gasUsed": 521303,
            "gasCost": "1155565564",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "synth_usde_market_id": "2",
          "synth_usde_token_address": "0x3A12E3f802437CD3A9755386BEd65Cca751a730e"
        }
      },
      "hash": "5d70c3c0dd0f68fc0f829c8402c9bc30",
      "version": 7
    },
    "invoke.registerSnxOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxOracleNode": {
            "hash": "0x2a6ce3fae08818a1d2cc9a2cc9044ab341dcdb716f46ba93cab2a40b7e2f9c36",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x8c1b31ea056b3cb8b93a6a7d71127852106d37960d92abfe579e266486491446",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000000e10",
                    [
                      "0x5db8d5ecf48e99cf2e7d22ac46e623efe1bfe140b78f75ee4b243e738a52822b",
                      "0x6b76b73294b1dc92ada3354faa272b836ee3ce2d5be71c46cbe8b3e07e76ad0c"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxOracleNode",
            "gasUsed": 220619,
            "gasCost": "1127768214",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "snx_oracle_id": "0x8c1b31ea056b3cb8b93a6a7d71127852106d37960d92abfe579e266486491446"
        }
      },
      "hash": "110585aa9d3d3f56fc9213cbb92ae8d9",
      "version": 7
    },
    "invoke.registerSusdeOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSusdeOracleNode": {
            "hash": "0x3022083366891f12af92c819e82bc0484bfe4609104a05efd942c381a867ef9f",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x13e4f468d8ac3735b2fddfbc926a190ca8290385447834f16713406ba2898489",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000000e10",
                    [
                      "0xdf6310120694b92b54df223540e2050c7a1bad93ae217d5be1d2d32b0cf9e36c",
                      "0x0faa5c2008d0a57a0cc8d733733f4c9ec6c74aff68c2b3f4abb5d97f62231259"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSusdeOracleNode",
            "gasUsed": 220619,
            "gasCost": "1135069856",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_oracle_id": "0x13e4f468d8ac3735b2fddfbc926a190ca8290385447834f16713406ba2898489"
        }
      },
      "hash": "1b6552a6cebb3b3279499cf2550b4dd8",
      "version": 7
    },
    "invoke.registerWstEthOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerWstEthOracleNode": {
            "hash": "0x19602791dec6bf0e6f67f513f39efe5b587c9dc50517a6a4a2f26b0b84abe92f",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xb4c7a22c94195538131684c05704010fa32ca52f2d2d69468192f932b9c0fdb8",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000000e10",
                    [
                      "0xd78e6d53200dc24c0c99ff0ee1455699b07fd68228c903f1123dcf529f81db49",
                      "0x4058cedfa4a25f97f611ab45fe6649dd8a71369e13f19ac4bd1bb18f54e3cfc6"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerWstEthOracleNode",
            "gasUsed": 220619,
            "gasCost": "1051773584",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "wsteth_oracle_id": "0xb4c7a22c94195538131684c05704010fa32ca52f2d2d69468192f932b9c0fdb8"
        }
      },
      "hash": "af46f93d25c21f136e2afbfe6f5a6a97",
      "version": 7
    },
    "setting.snx_address": {
      "artifacts": {
        "settings": {
          "snx_address": "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb"
        }
      },
      "hash": "3752257aee21781181b748823af958ee",
      "version": 7
    },
    "invoke.SpotMarketProxy_setWrapper_usde": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "SpotMarketProxy_setWrapper_usde": {
            "hash": "0x3cba04e96bae0abd52604efc12017631624317460dbba8f712c169c60e3071b7",
            "blockNumber": "6269428",
            "timestamp": "1720433760",
            "events": {
              "WrapperSet": [
                {
                  "name": "WrapperSet",
                  "args": [
                    "2",
                    "0xa856Fd446D45ce68Bab9fdbE760B2E1ac543EECd",
                    "100000000000000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.SpotMarketProxy_setWrapper_usde",
            "gasUsed": 59387,
            "gasCost": "255533385922",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "77a162cd1e2f880a1c72c3115a751138",
      "version": 7
    },
    "invoke.addSpotUsdeSettlementStrategy": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "addSpotUsdeSettlementStrategy": {
            "hash": "0x5e398173b499a3aa5555e31f73c496b5016618e9a9df2e37df1b807112844230",
            "events": {
              "SettlementStrategyAdded": [
                {
                  "name": "SettlementStrategyAdded",
                  "args": [
                    "2",
                    "0"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.addSpotUsdeSettlementStrategy",
            "gasUsed": 164659,
            "gasCost": "1026466995",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "dede132dffdfa6a1eb708cacba156042",
      "version": 7
    },
    "invoke.configureSnxCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureSnxCollateral": {
            "hash": "0x7e55285883a03f75f7245c0a71737f65424a2d6a5927d1bd231032f7f7af027d",
            "blockNumber": "8323686",
            "timestamp": "1747208880",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
                    {
                      "depositingEnabled": true,
                      "issuanceRatioD18": "5000000000000000000",
                      "liquidationRatioD18": "1010000000000000000",
                      "liquidationRewardD18": "0",
                      "oracleNodeId": "0xfa2382e79237e15c657bd9687d184d297d8814e1adb00c339c12db596256d5b9",
                      "tokenAddress": "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
                      "minDelegationD18": "1"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureSnxCollateral",
            "gasUsed": 59686,
            "gasCost": "2235859940",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "787d3bb3a88d0bbf3c5cfa4ffd22c0bd",
      "version": 7
    },
    "invoke.configureSusdeCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureSusdeCollateral": {
            "hash": "0x43e00914dd945fe480396a85f7687feddfa33a324669da70fce0b75736cb9263",
            "blockNumber": "6277507",
            "timestamp": "1720540752",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0xFDa8192b495Cb568c6C556a6F6D89A1E3Ab87106",
                    {
                      "depositingEnabled": true,
                      "issuanceRatioD18": "1100000000000000000",
                      "liquidationRatioD18": "1010000000000000000",
                      "liquidationRewardD18": "1000000000000000000",
                      "oracleNodeId": "0x7d9247f06acb8db5adc395c853d8f06b1b75f62f7f795e08062d9f5c48630c1b",
                      "tokenAddress": "0xFDa8192b495Cb568c6C556a6F6D89A1E3Ab87106",
                      "minDelegationD18": "1000000000000000000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureSusdeCollateral",
            "gasUsed": 59034,
            "gasCost": "8653307434",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "36919c4aba74355af28b3cf3cb37c49a",
      "version": 7
    },
    "invoke.configureWstethCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureWstethCollateral": {
            "hash": "0x1ba15e26c383117db2feab5ca553405e69f59f59a1d424dcee689dfdf30faf2e",
            "blockNumber": "6332966",
            "timestamp": "1721302176",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0x961B263D3c66Ad3f9DD18f14e17280d6ECDB742c",
                    {
                      "depositingEnabled": true,
                      "issuanceRatioD18": "1500000000000000000",
                      "liquidationRatioD18": "1100000000000000000",
                      "liquidationRewardD18": "10000000000000000",
                      "oracleNodeId": "0x37afb8ab01e456a480b8b1516b3c945a84f8011f60494ed6b1d7021547c790aa",
                      "tokenAddress": "0x961B263D3c66Ad3f9DD18f14e17280d6ECDB742c",
                      "minDelegationD18": "10000000000000000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureWstethCollateral",
            "gasUsed": 243163,
            "gasCost": "2454983977",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "ba979d92063c096179ae256aaf7050bb",
      "version": 7
    },
    "invoke.registerRewardsDistributor": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerRewardsDistributor": {
            "hash": "0xe6879646a133556abd151bead0cdd7cbcea0af24a986d808c08bc4489544dc76",
            "events": {
              "RewardsDistributorRegistered": [
                {
                  "name": "RewardsDistributorRegistered",
                  "args": [
                    "1",
                    "0x079E7E1C0cBFee4B2D2798A9d426009D08b1F9cb",
                    "0x25AA941da42898c0C444EaB83c0FCAC364666720"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerRewardsDistributor",
            "gasUsed": 128971,
            "gasCost": "1095684617",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "129cb04cbe1eb214a5400182228e3536",
      "version": 7
    },
    "invoke.setPreferredPool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setPreferredPool": {
            "hash": "0x3fc4cb2b7a738bd59986411077571ec197f0d0e411305aeb1c65b9a1930056d3",
            "events": {
              "PreferredPoolSet": [
                {
                  "name": "PreferredPoolSet",
                  "args": [
                    "1"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setPreferredPool",
            "gasUsed": 58352,
            "gasCost": "1081134126",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "e8d9927c04c3ae5b6e2a7c164676af3e",
      "version": 7
    },
    "invoke.setScPoolConfig": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setScPoolConfig": {
            "hash": "0xd0f2901462876b28d21b1f46dafd7497a29f59685dc9a74fd69ea8acf507ede1",
            "blockNumber": "6486136",
            "timestamp": "1723469808",
            "events": {
              "PoolConfigurationSet": [
                {
                  "name": "PoolConfigurationSet",
                  "args": [
                    "1",
                    [
                      {
                        "marketId": "1",
                        "weightD18": "90",
                        "maxDebtShareValueD18": "1000000000000000000"
                      },
                      {
                        "marketId": "2",
                        "weightD18": "1",
                        "maxDebtShareValueD18": "1000000000000000000"
                      },
                      {
                        "marketId": "3",
                        "weightD18": "9",
                        "maxDebtShareValueD18": "1000000000000000000"
                      }
                    ],
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setScPoolConfig",
            "gasUsed": 709571,
            "gasCost": "29448460495",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "d7e51bdda7c3fcc65f046fcc847065e1",
      "version": 7
    },
    "invoke.setScPoolName": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setScPoolName": {
            "hash": "0x81ae27678eca3421c28a476b4383bd1cae83737ec213f88aacc3e24747553dea",
            "events": {
              "PoolNameUpdated": [
                {
                  "name": "PoolNameUpdated",
                  "args": [
                    "1",
                    "Spartan Council Pool",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setScPoolName",
            "gasUsed": 61033,
            "gasCost": "1090125363",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "8f7409d33011f8683ed66f584552dc1c",
      "version": 7
    },
    "invoke.setSynthAsyncFixedFeeUsde": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthAsyncFixedFeeUsde": {
            "hash": "0x78db7301fee98b6cd62f3bde5f5dd95a66a20b78303d975ecd2b263db7eef7c5",
            "events": {
              "AsyncFixedFeeSet": [
                {
                  "name": "AsyncFixedFeeSet",
                  "args": [
                    "2",
                    "0"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthAsyncFixedFeeUsde",
            "gasUsed": 36766,
            "gasCost": "1044230686",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "368f907f725e26dc3897bca69c5f471d",
      "version": 7
    },
    "invoke.setSynthPriceUsde": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthPriceUsde": {
            "hash": "0xef59e21a051e459c5dd0b6c29e708a2502dd8d2ab3896a6c80eb4036eb0fd53d",
            "blockNumber": "6332967",
            "timestamp": "1721302188",
            "events": {
              "SynthPriceDataUpdated": [
                {
                  "name": "SynthPriceDataUpdated",
                  "args": [
                    "2",
                    "0xee7492cdece5993b0574fe0af947814c4a833137050b1cd6ad0b52e91c11ac8c",
                    "0xee7492cdece5993b0574fe0af947814c4a833137050b1cd6ad0b52e91c11ac8c",
                    "60"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthPriceUsde",
            "gasUsed": 48710,
            "gasCost": "2399751352",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "96d1819b1b4a591cc08732d81803d936",
      "version": 7
    },
    "invoke.setSynthSkewScaleUsde": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthSkewScaleUsde": {
            "hash": "0xfd30db699d090db33d9368bc6a60b94e88fee2aeb0d893ed23e5ba8bde086888",
            "events": {
              "MarketSkewScaleSet": [
                {
                  "name": "MarketSkewScaleSet",
                  "args": [
                    "2",
                    "0"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthSkewScaleUsde",
            "gasUsed": 36710,
            "gasCost": "1031626013",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "557e9ccc5c493a8f4f92abea0ece8031",
      "version": 7
    },
    "invoke.setSynthSettlementStrategyUsde": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthSettlementStrategyUsde": {
            "hash": "0x3b34623ce8a2f454a4233d00c42fed7f276acdacf5a70b065772ae4af6ffaa85",
            "events": {
              "SettlementStrategySet": [
                {
                  "name": "SettlementStrategySet",
                  "args": [
                    "2",
                    "0",
                    {
                      "strategyType": 1,
                      "settlementDelay": "2",
                      "settlementWindowDuration": "60",
                      "priceVerificationContract": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
                      "feedId": "0x6ec879b1e9963de5ee97e9c8710b742d6228252a5e2ca12d4ae81d7fe5ee8c5d",
                      "url": "https://api.synthetix.io/pyth-mainnet/api/get_vaa_ccip?data={data}",
                      "settlementReward": "0",
                      "priceDeviationTolerance": "1000000000000000000",
                      "minimumUsdExchangeAmount": "1000000000000",
                      "maxRoundingLoss": "1000000000000",
                      "disabled": false
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthSettlementStrategyUsde",
            "gasUsed": 258792,
            "gasCost": "981507213",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "a119c2df2d3dcf9383865d14980321fa",
      "version": 7
    },
    "invoke.allowAllCreatePool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "allowAllCreatePool": {
            "hash": "0xdb474518492c03743fd9f0030cdc59b1d6fa7904f442ee95ab7bd504ed4639e5",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x637265617465506f6f6c00000000000000000000000000000000000000000000",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.allowAllCreatePool",
            "gasUsed": 37085,
            "gasCost": "1037139618",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "c05a4629ce150fbd2f970e97d721f3e3",
      "version": 7
    },
    "setting.snx_chainlink_staleness_tolerance": {
      "artifacts": {
        "settings": {
          "snx_chainlink_staleness_tolerance": "86400"
        }
      },
      "hash": "3acf2387dde14e993634ca9badf5f564",
      "version": 7
    },
    "clone.susde_deploy": {
      "artifacts": {
        "imports": {
          "susde_deploy": {
            "url": "ipfs://QmSjmhQPsU4j5w92f9E1ddQybeQvTFLrELqYtgfwxw6DzR",
            "tags": [
              "latest"
            ],
            "target": "fake-susde-token:latest@main",
            "preset": "main",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "Token": {
                "address": "0xFDa8192b495Cb568c6C556a6F6D89A1E3Ab87106",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Ethena Staked USD (fake)",
                  "sUSDe",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1720433400",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.Token",
                "highlight": true,
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "clone.usde": {
      "artifacts": {
        "imports": {
          "usde": {
            "url": "ipfs://QmTU3kf4VU6WuA8TP2FyGia8kPAahUgf5LUd4U2b8pwnyE",
            "tags": [
              "latest"
            ],
            "target": "fake-usde-token:latest@main",
            "preset": "main",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "Token": {
                "address": "0xa856Fd446D45ce68Bab9fdbE760B2E1ac543EECd",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Ethena USD (fake)",
                  "USDe",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1720433400",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.Token",
                "highlight": true,
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "clone.wsteth_deploy": {
      "artifacts": {
        "imports": {
          "wsteth_deploy": {
            "url": "ipfs://QmNoK393eMsXtQDwrnDubSrr32s3yGrKw3jeNY8HKoEwmu",
            "tags": [
              "latest"
            ],
            "target": "fake-wsteth-token:latest@main",
            "preset": "main",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "Token": {
                "address": "0x961B263D3c66Ad3f9DD18f14e17280d6ECDB742c",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Lido Wrapped Staked ETH (fake)",
                  "WstETH",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x8f6720224a70a359170bf51640b729b5f68a1342a85ea1c3b1511d74aedc4604",
                "deployTxnBlockNumber": "6269403",
                "deployTimestamp": "1720433424",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.Token",
                "highlight": true,
                "gasUsed": 775049,
                "gasCost": "266446644194"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.registerSnxOracleManagerNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxOracleManagerNode": {
            "hash": "0xc36fd98656fab7886cbd903c094526d1c6738559c1f74c100f29e115b4c46422",
            "blockNumber": "6269419",
            "timestamp": "1720433652",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xd2ecd19ffabdec991a3ed919bc2565574bf2bb7a0fb09de7413c3115c5d15778",
                    3,
                    "0x000000000000000000000000c0f82a46033b8bdba4bb0b0e28bc2006f64355bc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxOracleManagerNode",
            "gasUsed": 155145,
            "gasCost": "277592624445",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "snx_oracle_id_raw": "0xd2ecd19ffabdec991a3ed919bc2565574bf2bb7a0fb09de7413c3115c5d15778"
        }
      },
      "hash": "773b0093d658edbacebb628fdeca413d",
      "version": 7
    },
    "invoke.registerWstethOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerWstethOracleNode": {
            "hash": "0xbff37389badd3e8c36296260f142d1abea78e0a273f7deb27c805a4f675ce0a0",
            "blockNumber": "6277502",
            "timestamp": "1720540680",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xa8111245ab1051fbe8184fa303f5c75909e43533631383688e8c7b0133cceb00",
                    3,
                    "0x000000000000000000000000aaabb530434b0eeaac9a42e25dbc6a22d7be218e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerWstethOracleNode",
            "gasUsed": 51010,
            "gasCost": "9478776502",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "wsteth_oracle_id_raw": "0xa8111245ab1051fbe8184fa303f5c75909e43533631383688e8c7b0133cceb00"
        }
      },
      "hash": "fee2d50dc672bc51fb4b5f8b5af9fb1c",
      "version": 7
    },
    "invoke.register_susde_oracle_node": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "register_susde_oracle_node": {
            "hash": "0x86cfdf2bd39f03dae5f3aebbd7c143251af3dafdb5130fbdbb7c280ba9acdd85",
            "blockNumber": "6269421",
            "timestamp": "1720433676",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x6e01f0cdf9487008e574236be87ad7980469f717f8af49112e4ba428f1465f24",
                    3,
                    "0x0000000000000000000000006f7be09227d98ce1df812d5bc745c0c775507e9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.register_susde_oracle_node",
            "gasUsed": 154771,
            "gasCost": "275549371860",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_oracle_id": "0x6e01f0cdf9487008e574236be87ad7980469f717f8af49112e4ba428f1465f24"
        }
      },
      "hash": "fcb17482ef891fa6356f31b20f4d89f2",
      "version": 7
    },
    "setting.wsteth_package": {
      "artifacts": {
        "settings": {
          "wsteth_package": "fake-wsteth-token"
        }
      },
      "hash": "7b3e2149a1a55e7c225129294345de37",
      "version": 7
    },
    "invoke.registerSnxWithStaleness": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxWithStaleness": {
            "hash": "0x5cdda02c41c724287f21736ed0b03746d1f4ea08d9fbbec83c4ba0ca7a108f24",
            "blockNumber": "6277503",
            "timestamp": "1720540692",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xfa2382e79237e15c657bd9687d184d297d8814e1adb00c339c12db596256d5b9",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000015180",
                    [
                      "0xd2ecd19ffabdec991a3ed919bc2565574bf2bb7a0fb09de7413c3115c5d15778"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxWithStaleness",
            "gasUsed": 189577,
            "gasCost": "9303839902",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "snx_oracle_id": "0xfa2382e79237e15c657bd9687d184d297d8814e1adb00c339c12db596256d5b9"
        }
      },
      "hash": "4f7bb0332eaa13a3157cd70284db29a1",
      "version": 7
    },
    "setting.susde_chainlink_staleness_tolerance": {
      "artifacts": {
        "settings": {
          "susde_chainlink_staleness_tolerance": "86400"
        }
      },
      "hash": "3acf2387dde14e993634ca9badf5f564",
      "version": 7
    },
    "setting.usde_chainlink_staleness_tolerance": {
      "artifacts": {
        "settings": {
          "usde_chainlink_staleness_tolerance": "86400"
        }
      },
      "hash": "3acf2387dde14e993634ca9badf5f564",
      "version": 7
    },
    "setting.wsteth_chainlink_staleness_tolerance": {
      "artifacts": {
        "settings": {
          "wsteth_chainlink_staleness_tolerance": "86400"
        }
      },
      "hash": "3acf2387dde14e993634ca9badf5f564",
      "version": 7
    },
    "invoke.registerSusdeOracleManagerNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSusdeOracleManagerNode": {
            "hash": "0x890056c7a3d519023972fa2670f6320b251219ae4f63b4a7f2bb0644a63de629",
            "blockNumber": "6277501",
            "timestamp": "1720540668",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x6e01f0cdf9487008e574236be87ad7980469f717f8af49112e4ba428f1465f24",
                    3,
                    "0x0000000000000000000000006f7be09227d98ce1df812d5bc745c0c775507e9200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSusdeOracleManagerNode",
            "gasUsed": 51010,
            "gasCost": "9544205005",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_oracle_id_raw": "0x6e01f0cdf9487008e574236be87ad7980469f717f8af49112e4ba428f1465f24"
        }
      },
      "hash": "b6b322f3a85c053b773350fc5a1d829f",
      "version": 7
    },
    "invoke.registerSusdeWithStaleness": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSusdeWithStaleness": {
            "hash": "0xd19df407725ddd295031a4da621babdc180bb88f3e5485f0d7646e65f212097e",
            "blockNumber": "6277504",
            "timestamp": "1720540716",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x7d9247f06acb8db5adc395c853d8f06b1b75f62f7f795e08062d9f5c48630c1b",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000015180",
                    [
                      "0x6e01f0cdf9487008e574236be87ad7980469f717f8af49112e4ba428f1465f24"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSusdeWithStaleness",
            "gasUsed": 189203,
            "gasCost": "9305360429",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "susde_oracle_id": "0x7d9247f06acb8db5adc395c853d8f06b1b75f62f7f795e08062d9f5c48630c1b"
        }
      },
      "hash": "8f6c6575e13d9b50d692c325da24fe0d",
      "version": 7
    },
    "invoke.registerWstethWithStaleness": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerWstethWithStaleness": {
            "hash": "0x267f13fba964f2d0b29cc6a67c9cc7423ae724a7e6e6d2f2160731eed34c9113",
            "blockNumber": "6277505",
            "timestamp": "1720540728",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x37afb8ab01e456a480b8b1516b3c945a84f8011f60494ed6b1d7021547c790aa",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000015180",
                    [
                      "0xa8111245ab1051fbe8184fa303f5c75909e43533631383688e8c7b0133cceb00"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerWstethWithStaleness",
            "gasUsed": 189191,
            "gasCost": "9537906445",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "wsteth_oracle_id": "0x37afb8ab01e456a480b8b1516b3c945a84f8011f60494ed6b1d7021547c790aa"
        }
      },
      "hash": "dc6ec08e0feb65f005a87fd321f238a0",
      "version": 7
    },
    "invoke.registerUsdeOracleManagerNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerUsdeOracleManagerNode": {
            "hash": "0xceb1fb3cf69e56865c4a13c1cfded2de41319fe0c064eb07d99e3730d3009a9d",
            "blockNumber": "6332961",
            "timestamp": "1721302104",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x0468f26657dcd3110c8c09f9bbeb97c940efc357ead39a0d71fd249484554e35",
                    3,
                    "0x00000000000000000000000055ec7c3ed0d7cb5df4d3d8bfed2ecaf28b4638fb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerUsdeOracleManagerNode",
            "gasUsed": 51010,
            "gasCost": "2864860141",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "usde_oracle_id_raw": "0x0468f26657dcd3110c8c09f9bbeb97c940efc357ead39a0d71fd249484554e35"
        }
      },
      "hash": "7f22bbe1987fd8960168277b008bcf5d",
      "version": 7
    },
    "invoke.registerUsdeWithStaleness": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerUsdeWithStaleness": {
            "hash": "0x0b3554b5d297d09377d06ece8d6e9871066f70209e74036ca5efe8b9ccdd0788",
            "blockNumber": "6332963",
            "timestamp": "1721302128",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xee7492cdece5993b0574fe0af947814c4a833137050b1cd6ad0b52e91c11ac8c",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000015180",
                    [
                      "0x0468f26657dcd3110c8c09f9bbeb97c940efc357ead39a0d71fd249484554e35"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerUsdeWithStaleness",
            "gasUsed": 189203,
            "gasCost": "2667141706",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "usde_oracle_id": "0xee7492cdece5993b0574fe0af947814c4a833137050b1cd6ad0b52e91c11ac8c"
        }
      },
      "hash": "200488e0c086b476f96855ce3e972698",
      "version": 7
    },
    "setting.bfp_market_package": {
      "artifacts": {
        "settings": {
          "bfp_market_package": "synthetix-bfp-market:3.8.1"
        }
      },
      "hash": "a1899b59a3a5f019305051bc6241501f",
      "version": 7
    },
    "setting.eth_aggregator_address": {
      "artifacts": {
        "settings": {
          "eth_aggregator_address": "0x694AA1769357215DE4FAC081bf1f309aDC325306"
        }
      },
      "hash": "ec59eada77be50773af6fddcd94c1612",
      "version": 7
    },
    "setting.funding_velocity_clamp": {
      "artifacts": {
        "settings": {
          "funding_velocity_clamp": "300000000000000"
        }
      },
      "hash": "a0992005b5b8fe41a8c8ea20ad80b3c0",
      "version": 7
    },
    "setting.incremental_margin_scalar": {
      "artifacts": {
        "settings": {
          "incremental_margin_scalar": "1000000000000000000"
        }
      },
      "hash": "845fb85d1e0ccaf6b0afd054626bbe97",
      "version": 7
    },
    "setting.liquidation_limit_scalar": {
      "artifacts": {
        "settings": {
          "liquidation_limit_scalar": "1000000000000000000"
        }
      },
      "hash": "845fb85d1e0ccaf6b0afd054626bbe97",
      "version": 7
    },
    "setting.liquidation_max_pd": {
      "artifacts": {
        "settings": {
          "liquidation_max_pd": "1200000000000000"
        }
      },
      "hash": "88ebf33713bb045d1b4f38f77865e083",
      "version": 7
    },
    "setting.liquidation_reward_percent": {
      "artifacts": {
        "settings": {
          "liquidation_reward_percent": "500000000000000"
        }
      },
      "hash": "9507626c6977c97f5964492d157a5899",
      "version": 7
    },
    "setting.liquidation_window_duration": {
      "artifacts": {
        "settings": {
          "liquidation_window_duration": "90"
        }
      },
      "hash": "f471192f4659d45a466360268c1e7098",
      "version": 7
    },
    "setting.maintenance_margin_scalar": {
      "artifacts": {
        "settings": {
          "maintenance_margin_scalar": "300000000000000000"
        }
      },
      "hash": "f9318d5fb733503c6b04ee3282dcf379",
      "version": 7
    },
    "setting.maker_fee": {
      "artifacts": {
        "settings": {
          "maker_fee": "100000000000000"
        }
      },
      "hash": "4a395753002fae8df9c747d89cec52f9",
      "version": 7
    },
    "setting.max_funding_velocity": {
      "artifacts": {
        "settings": {
          "max_funding_velocity": "3000000000000000000"
        }
      },
      "hash": "f564eb7a12d7143eb45d4ae362f2f600",
      "version": 7
    },
    "setting.max_initial_margin_ratio": {
      "artifacts": {
        "settings": {
          "max_initial_margin_ratio": "900000000000000000"
        }
      },
      "hash": "7056b70cf968bb190a533e1c6cf63fee",
      "version": 7
    },
    "setting.max_market_size": {
      "artifacts": {
        "settings": {
          "max_market_size": "1000000000000000000000"
        }
      },
      "hash": "5b7618f33dff6872423583725a980f88",
      "version": 7
    },
    "setting.min_credit_percent": {
      "artifacts": {
        "settings": {
          "min_credit_percent": "250000000000000000"
        }
      },
      "hash": "7f56bbc581ab6e0b6104deeb507ef029",
      "version": 7
    },
    "setting.min_margin_ratio": {
      "artifacts": {
        "settings": {
          "min_margin_ratio": "20000000000000000"
        }
      },
      "hash": "edcad93121d0d5a64b1e8144724640c7",
      "version": 7
    },
    "setting.min_margin_usd": {
      "artifacts": {
        "settings": {
          "min_margin_usd": "1000000000000000000000"
        }
      },
      "hash": "5b7618f33dff6872423583725a980f88",
      "version": 7
    },
    "setting.skew_scale": {
      "artifacts": {
        "settings": {
          "skew_scale": "1000000000000000000000000"
        }
      },
      "hash": "563261047cda85ae592800486d39bc77",
      "version": 7
    },
    "setting.snxusd_max_market_collateral": {
      "artifacts": {
        "settings": {
          "snxusd_max_market_collateral": "1000000000000000000000000"
        }
      },
      "hash": "563261047cda85ae592800486d39bc77",
      "version": 7
    },
    "setting.snxusd_skew_scale": {
      "artifacts": {
        "settings": {
          "snxusd_skew_scale": "0"
        }
      },
      "hash": "4dcc24a97eaa6583aab6a5b0cb07d27e",
      "version": 7
    },
    "setting.taker_fee": {
      "artifacts": {
        "settings": {
          "taker_fee": "600000000000000"
        }
      },
      "hash": "edd2c4e8c2f8a1b5a1e8204c228b257b",
      "version": 7
    },
    "setting.weth_max_collateral": {
      "artifacts": {
        "settings": {
          "weth_max_collateral": "10000000000000000000000"
        }
      },
      "hash": "5fe1681558f6a599da4a4589e073d41b",
      "version": 7
    },
    "setting.weth_max_pool_collateral": {
      "artifacts": {
        "settings": {
          "weth_max_pool_collateral": "20000000000000000000000"
        }
      },
      "hash": "1d25f715e7c1eccfe8874a15ee7e5c16",
      "version": 7
    },
    "setting.weth_skew_scale": {
      "artifacts": {
        "settings": {
          "weth_skew_scale": "1000000000000000000000000"
        }
      },
      "hash": "563261047cda85ae592800486d39bc77",
      "version": 7
    },
    "provision.weth_mock_collateral": {
      "artifacts": {
        "imports": {
          "weth_mock_collateral": {
            "url": "ipfs://QmU4e4FDv9JYxavbZBCL4hjknpRGWB1FhY1z1WdLGeQhfX",
            "tags": [
              "latest"
            ],
            "target": "mintable-token:1.8@with-synthetix-omnibus",
            "preset": "with-synthetix-omnibus",
            "settings": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            },
            "contracts": {
              "MintableToken": {
                "address": "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0",
                "abi": [
                  "constructor(address owner, string name, string symbol, uint8 tokenDecimals, uint256 initialSupply) payable",
                  "function allowance(address owner, address spender) view returns (uint256)",
                  "function approve(address spender, uint256 amount) returns (bool)",
                  "function balanceOf(address account) view returns (uint256)",
                  "function decimals() view returns (uint8)",
                  "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                  "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                  "function mint(uint256 amount, address to)",
                  "function name() view returns (string)",
                  "function owner() view returns (address)",
                  "function renounceOwnership()",
                  "function symbol() view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transfer(address to, uint256 amount) returns (bool)",
                  "function transferFrom(address from, address to, uint256 amount) returns (bool)",
                  "function transferOwnership(address newOwner)",
                  "event Approval(address indexed owner, address indexed spender, uint256 value)",
                  "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
                  "event Transfer(address indexed from, address indexed to, uint256 value)"
                ],
                "constructorArgs": [
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                  "Fake WETH",
                  "fWETH",
                  "18",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1723469256",
                "sourceName": "src/MintableToken.sol",
                "contractName": "MintableToken",
                "deployedOn": "contract.MintableToken",
                "highlight": true,
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "extras": {
              "decimals": "18",
              "initialSupply": "0",
              "name": "Token",
              "owner": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
              "salt": "",
              "symbol": "TKN"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.registerEthOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerEthOracleNode": {
            "hash": "0x1715a457a43f3f4a8248a52b4db6f4f0fd08fb488b57b985c4f3e0fa9a89ec32",
            "blockNumber": "6486096",
            "timestamp": "1723469268",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xa1ad04e5fe674fe144be389adb9340f0b15e73d866da4e70145eec4ef867955b",
                    3,
                    "0x000000000000000000000000694aa1769357215de4fac081bf1f309adc32530600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerEthOracleNode",
            "gasUsed": 51010,
            "gasCost": "18883061191",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "eth_oracle_id": "0xa1ad04e5fe674fe144be389adb9340f0b15e73d866da4e70145eec4ef867955b"
        }
      },
      "hash": "3464d6afcc6e28d5d92b497fb1a3b8a0",
      "version": 7
    },
    "provision.bfp_market_factory": {
      "artifacts": {
        "imports": {
          "bfp_market_factory": {
            "url": "ipfs://QmdtA5Sbhu1q1AhTGHBxqzvTE4NCHcYVkWQ74eMYDVCKUL",
            "tags": [
              "latest"
            ],
            "target": "synthetix-bfp-market:3.8.1@main",
            "preset": "main",
            "contracts": {
              "CoreModule": {
                "address": "0xEA1998Ae746e03A6241cEA036aC41F18dd7EFB74",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x41f53dec16bd89a607b517ecb2ec12814120a2892916acd5e0d68ab0146a164a",
                "deployTxnBlockNumber": "6486097",
                "deployTimestamp": "1723469280",
                "sourceName": "contracts/modules/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule",
                "gasUsed": 940287,
                "gasCost": "18680782883"
              },
              "FeatureFlagModule": {
                "address": "0x06784E6eA5517d15c72FFd588448298210B4Be78",
                "abi": [
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "event PerpMarketSuspended(bool suspended)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function enableAllFeatures()",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "function suspendAllFeatures()"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x2d3df7db6704a23ce8aa8ea485481a2a3dd1a2a0270fbbdc6e192b5acccdf254",
                "deployTxnBlockNumber": "6660742",
                "deployTimestamp": "1725880944",
                "sourceName": "contracts/modules/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 939197,
                "gasCost": "61834145095"
              },
              "PerpRewardDistributor": {
                "address": "0x286ddABa2304aCB2cE0CE890647A75d658506F35",
                "abi": [
                  "constructor()",
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "error InsufficientRewardBalance(uint256 amount, uint256 balance)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error Unauthorized(address addr)",
                  "event Initialized(uint8 version)",
                  "function distributeRewards(address collateralType, uint256 amount)",
                  "function getPoolCollateralTypes() view returns (address[])",
                  "function getPoolId() view returns (uint128)",
                  "function initialize(address rewardManager, address perpMarket, uint128 poolId_, address[] poolCollateralTypes_, address payoutToken_, string name_)",
                  "function name() view returns (string)",
                  "function onPositionUpdated(uint128, uint128, address, uint256) pure",
                  "function payout(uint128, uint128 poolId, address, address payoutTarget_, uint256 payoutAmount_) returns (bool)",
                  "function setShouldFailPayout(bool _shouldFailedPayout)",
                  "function shouldFailPayout() view returns (bool)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function token() view returns (address)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xfe6bcbcb36adc7b65895e44ab97bb2e73d877337b6ee5573cdeb1fcee8954c13",
                "deployTxnBlockNumber": "6992415",
                "deployTimestamp": "1730492892",
                "sourceName": "contracts/modules/PerpRewardDistributorModule/PerpRewardDistributor.sol",
                "contractName": "PerpRewardDistributor",
                "deployedOn": "contract.PerpRewardDistributor",
                "gasUsed": 998734,
                "gasCost": "3244845272"
              },
              "SettlementHookModule": {
                "address": "0x012Ba70815b5028d82d2CE5aF446573A1E9Af1BD",
                "abi": [
                  "error InvalidHook(address hook)",
                  "error Unauthorized(address addr)",
                  "event SettlementHookConfigured(address indexed from, uint256 hooks)",
                  "function getSettlementHookConfiguration() view returns (tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder))",
                  "function isSettlementHookWhitelisted(address hook) view returns (bool)",
                  "function setSettlementHookConfiguration(tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder) data)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xbed06f20f9646d5af3e35d328781714ecc0a9f8610ea037d14f63f6d9c9ab889",
                "deployTxnBlockNumber": "6992416",
                "deployTimestamp": "1730492904",
                "sourceName": "contracts/modules/SettlementHookModule.sol",
                "contractName": "SettlementHookModule",
                "deployedOn": "contract.SettlementHookModule",
                "gasUsed": 528390,
                "gasCost": "3573212824"
              },
              "SplitAccountConfigurationModule": {
                "address": "0x083Fb9386b35b40Ef625DBdF0b9A6b0f49dD013B",
                "abi": [
                  "error Unauthorized(address addr)",
                  "error ZeroAddress()",
                  "event SplitAccountConfigured(address indexed from, uint256 hooks)",
                  "function getEndorsedSplitAccounts() view returns (address[] addresses)",
                  "function isEndorsedForSplitAccount(address addr) view returns (bool)",
                  "function setEndorsedSplitAccounts(address[] addresses)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xdb746c2861d32703e3e8bdf59ce630459257af75ff09f6f72d89bcb01424bdac",
                "deployTxnBlockNumber": "6992417",
                "deployTimestamp": "1730492916",
                "sourceName": "contracts/modules/SplitAccountConfigurationModule.sol",
                "contractName": "SplitAccountConfigurationModule",
                "deployedOn": "contract.SplitAccountConfigurationModule",
                "gasUsed": 403538,
                "gasCost": "3405219150"
              },
              "InitialBfpMarketProxy": {
                "address": "0x07049D05FC829933511274F6e3A828d464d3517E",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [
                  "0xEA1998Ae746e03A6241cEA036aC41F18dd7EFB74",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x122056023a12a79532ba0ee1648766e5e2a1a403875b9de2804658697046d448",
                "deployTxnBlockNumber": "6486104",
                "deployTimestamp": "1723469376",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialBfpMarketProxy",
                "gasUsed": 248149,
                "gasCost": "17977249444"
              },
              "LiquidationModule": {
                "address": "0x7832De89785CB55A5939193f14291D1eDe178AC4",
                "abi": [
                  "constructor(address _synthetix)",
                  "error AccountNotFound(uint128 accountId)",
                  "error CannotLiquidateMargin()",
                  "error CannotLiquidatePosition()",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error LiquidationZeroCapacity()",
                  "error MarketNotFound(uint128 marketId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error PositionFlagged()",
                  "error PositionNotFlagged()",
                  "error PositionNotFound()",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarginLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperReward)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event PositionFlaggedLiquidation(uint128 indexed accountId, uint128 indexed marketId, address flagger, uint256 flagKeeperReward, uint256 flaggedPrice)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, int128 sizeBeforeLiquidation, int128 remainingSize, address keeper, address flagger, uint256 liqKeeperFee, uint256 liquidationPrice)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function flagPosition(uint128 accountId, uint128 marketId)",
                  "function getHealthFactor(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getLiquidationFees(uint128 accountId, uint128 marketId) view returns (uint256 flagKeeperReward, uint256 liqKeeperFee)",
                  "function getLiquidationMarginUsd(uint128 accountId, uint128 marketId, int128 sizeDelta) view returns (uint256 im, uint256 mm)",
                  "function getRemainingLiquidatableSizeCapacity(uint128 marketId) view returns (uint128 maxLiquidatableCapacity, uint128 remainingCapacity, uint128 lastLiquidationTimestamp)",
                  "function isMarginLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function liquidateMarginOnly(uint128 accountId, uint128 marketId)",
                  "function liquidatePosition(uint128 accountId, uint128 marketId)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x9f11b952fc38cdbb0cb18cc561f19dbabc8f5603defbf7a3891be2b045b911c8",
                "deployTxnBlockNumber": "6992418",
                "deployTimestamp": "1730492928",
                "sourceName": "contracts/modules/LiquidationModule.sol",
                "contractName": "LiquidationModule",
                "deployedOn": "contract.LiquidationModule",
                "gasUsed": 3697233,
                "gasCost": "3223660544"
              },
              "MarginModule": {
                "address": "0x61D5496C274c293Fc1816d6C84404dF14Bf3d2e6",
                "abi": [
                  "constructor(address _synthetix)",
                  "error AccountNotFound(uint128 accountId)",
                  "error ArrayLengthMismatch()",
                  "error CanLiquidatePosition()",
                  "error DebtFound(uint128 accountId, uint128 marketId)",
                  "error DuplicateEntries()",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientCollateral(address collateralAddress, uint256 available, uint256 value)",
                  "error InsufficientMargin()",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error InvalidRewardDistributor(address distributor)",
                  "error MarketNotFound(uint128 marketId)",
                  "error MaxCollateralExceeded(uint256 value, uint256 max)",
                  "error MissingRequiredCollateral(address collateralAddress)",
                  "error NilCollateral()",
                  "error NoDebt()",
                  "error OrderFound()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PositionFlagged()",
                  "error PositionFound(uint128 accountId, uint128 marketId)",
                  "error Unauthorized(address addr)",
                  "error UnsupportedCollateral(address collateralAddress)",
                  "error ZeroAmount()",
                  "event DebtPaid(uint128 indexed accountId, uint128 indexed marketId, uint128 oldDebt, uint128 newDebt, uint128 paidFromUsdCollateral)",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarginCollateralConfigured(address indexed from, uint256 collaterals)",
                  "event MarginDeposit(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "event MarginWithdraw(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function getDiscountedCollateralPrice(address collateralAddress, uint256 amount) view returns (uint256)",
                  "function getMarginCollateralConfiguration() view returns (tuple(address collateralAddress, bytes32 oracleNodeId, uint128 maxAllowable, uint128 skewScale, address rewardDistributor)[])",
                  "function getMarginDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint256 discountedMarginUsd, uint256 marginUsd, uint256 discountedCollateralUsd, uint256 collateralUsd))",
                  "function getMarginLiquidationOnlyReward(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getNetAssetValue(uint128 accountId, uint128 marketId, uint256 oraclePrice) view returns (uint256)",
                  "function getWithdrawableMargin(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function modifyCollateral(uint128 accountId, uint128 marketId, address collateralAddress, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint128 marketId, uint128 amount)",
                  "function setCollateralMaxAllowable(address collateralAddress, uint128 maxAllowable)",
                  "function setMarginCollateralConfiguration(address[] collateralAddresses, bytes32[] oracleNodeIds, uint128[] maxAllowables, uint128[] skewScales, address[] rewardDistributors)",
                  "function withdrawAllCollateral(uint128 accountId, uint128 marketId)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xb74b539c8f6739c2e14bdae76a7f221af074e189e076e8f82ddf48afdb2d75dc",
                "deployTxnBlockNumber": "6992419",
                "deployTimestamp": "1730492940",
                "sourceName": "contracts/modules/MarginModule.sol",
                "contractName": "MarginModule",
                "deployedOn": "contract.MarginModule",
                "gasUsed": 4074322,
                "gasCost": "3602194004"
              },
              "MarketConfigurationModule": {
                "address": "0x467818e86F96c7805959b309e921769F07c967b0",
                "abi": [
                  "constructor(address _synthetix)",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketNotFound(uint128 marketId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint64()",
                  "error Unauthorized(address addr)",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event GlobalMarketConfigured(address indexed from)",
                  "event MarketConfigured(uint128 indexed marketId, address indexed from)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function getMarketConfiguration() pure returns (tuple(address pyth, bytes32 ethOracleNodeId, address rewardDistributorImplementation, uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginUsd, uint128 keeperProfitMarginPercent, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent))",
                  "function getMarketConfigurationById(uint128 marketId) pure returns (tuple(bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd))",
                  "function setMarketConfiguration(tuple(uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginPercent, uint128 keeperProfitMarginUsd, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent) data)",
                  "function setMarketConfigurationById(tuple(uint128 marketId, bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd) data)",
                  "function setMinDelegationTime(uint128 marketId, uint32 minDelegationTime)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xfea0be2a127ec51ee5385b5aeea14d6314656d66e4aec35c144760f8d2a17a27",
                "deployTxnBlockNumber": "6992420",
                "deployTimestamp": "1730492976",
                "sourceName": "contracts/modules/MarketConfigurationModule.sol",
                "contractName": "MarketConfigurationModule",
                "deployedOn": "contract.MarketConfigurationModule",
                "gasUsed": 1518467,
                "gasCost": "3404614876"
              },
              "OrderModule": {
                "address": "0x69563C37DAb3B342Cf99b1b55262Eb42415d537C",
                "abi": [
                  "constructor(address _synthetix)",
                  "error AccountNotFound(uint128 accountId)",
                  "error CanLiquidatePosition()",
                  "error DuplicateHook(address hook)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientLiquidity()",
                  "error InsufficientMargin()",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error InvalidHook(address hook)",
                  "error InvalidPrice()",
                  "error MarketNotFound(uint128 marketId)",
                  "error MaxHooksExceeded()",
                  "error MaxMarketSizeExceeded()",
                  "error NilOrder()",
                  "error OrderFound()",
                  "error OrderNotFound()",
                  "error OrderNotReady()",
                  "error OrderNotStale()",
                  "error OrderStale()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PositionFlagged()",
                  "error PriceToleranceExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "error PriceToleranceNotExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event OrderCommitted(uint128 indexed accountId, uint128 indexed marketId, uint64 commitmentTime, int128 sizeDelta, uint256 estimatedOrderFee, uint256 estimatedKeeperFee, bytes32 trackingCode)",
                  "event OrderSettled(uint128 indexed accountId, uint128 indexed marketId, uint64 settlementTime, int128 sizeDelta, uint256 orderFee, uint256 keeperFee, int128 accruedFunding, uint128 accruedUtilization, int256 pnl, uint256 fillPrice, uint128 accountDebt)",
                  "event OrderSettlementHookExecuted(uint128 indexed accountId, uint128 indexed marketId, address hook)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function cancelOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable",
                  "function cancelStaleOrder(uint128 accountId, uint128 marketId)",
                  "function commitOrder(uint128 accountId, uint128 marketId, int128 sizeDelta, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bytes32 trackingCode)",
                  "function getFillPrice(uint128 marketId, int128 size) view returns (uint256)",
                  "function getOraclePrice(uint128 marketId) view returns (uint256)",
                  "function getOrderDigest(uint128 accountId, uint128 marketId) view returns (tuple(int128 sizeDelta, uint64 commitmentTime, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bool isStale, bool isReady))",
                  "function getOrderFees(uint128 marketId, int128 sizeDelta, uint128 keeperFeeBufferUsd) view returns (uint256 orderFee, uint256 keeperFee)",
                  "function settleOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x49985b21c4025fd6690bac4760d3c5d44aa3029c326d065ef708409795d5417e",
                "deployTxnBlockNumber": "6992421",
                "deployTimestamp": "1730492988",
                "sourceName": "contracts/modules/OrderModule.sol",
                "contractName": "OrderModule",
                "deployedOn": "contract.OrderModule",
                "gasUsed": 4682348,
                "gasCost": "3817365729"
              },
              "PerpAccountModule": {
                "address": "0x2f6EFde2A1be817981DF8f653811786b9Aab444C",
                "abi": [
                  "constructor(address _synthetix)",
                  "error AccountNotFound(uint128 accountId)",
                  "error AccountSplitProportionTooLarge()",
                  "error AccountSplitProportionTooSmall()",
                  "error CanLiquidatePosition()",
                  "error CollateralFound()",
                  "error DuplicateEntries()",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientMargin()",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error InvalidHook(address hook)",
                  "error InvalidPositionSide()",
                  "error MarketNotFound(uint128 marketId)",
                  "error OrderFound()",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PositionFlagged()",
                  "error PositionFound(uint128 accountId, uint128 marketId)",
                  "error PositionNotFound()",
                  "error Unauthorized(address caller)",
                  "error ZeroProportion()",
                  "event AccountSplit(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "event AccountsMerged(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "function getAccountDigest(uint128 accountId, uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available, uint256 oraclePrice)[] depositedCollaterals, uint256 collateralUsd, uint128 debtUsd, tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm) position))",
                  "function getPositionDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm))",
                  "function mergeAccounts(uint128 fromId, uint128 toId, uint128 marketId)",
                  "function splitAccount(uint128 fromId, uint128 toId, uint128 marketId, uint128 proportion)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x627c51ae1f47326d34a114a2ce99e0bf5ee15c15da867f247a63a681f42068df",
                "deployTxnBlockNumber": "6992422",
                "deployTimestamp": "1730493000",
                "sourceName": "contracts/modules/PerpAccountModule.sol",
                "contractName": "PerpAccountModule",
                "deployedOn": "contract.PerpAccountModule",
                "gasUsed": 3216229,
                "gasCost": "3849340876"
              },
              "PerpMarketFactoryModule": {
                "address": "0xFAe1D525576526921FbFB096DD747fAf9B7c6dbd",
                "abi": [
                  "constructor(address _synthetix)",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error MarketNotFound(uint128 marketId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error Unauthorized(address addr)",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarketCreated(uint128 indexed id, bytes32 name)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function createMarket(tuple(bytes32 name, uint32 minDelegateTime) data) returns (uint128)",
                  "function getActiveMarketIds() view returns (uint128[])",
                  "function getMarketDigest(uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available)[] depositedCollaterals, bytes32 name, int128 skew, uint128 size, uint256 oraclePrice, int128 fundingVelocity, int128 fundingRate, uint128 utilizationRate, uint128 remainingLiquidatableSizeCapacity, uint128 lastLiquidationTime, uint128 totalTraderDebtUsd, uint256 totalCollateralValueUsd, int128 debtCorrection))",
                  "function getUtilizationDigest(uint128 marketId) view returns (tuple(uint128 lastComputedUtilizationRate, uint64 lastComputedTimestamp, uint128 currentUtilizationRate, uint256 utilization))",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128) pure returns (string)",
                  "function recomputeFunding(uint128 marketId)",
                  "function recomputeUtilization(uint128 marketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function setEthOracleNodeId(bytes32 ethOracleNodeId)",
                  "function setPyth(address pyth)",
                  "function setRewardDistributorImplementation(address implementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xd63381e4d02aec6fc3ca1536255b613c891c320521610b3d5394e825c96f23ff",
                "deployTxnBlockNumber": "6992423",
                "deployTimestamp": "1730493024",
                "sourceName": "contracts/modules/PerpMarketFactoryModule.sol",
                "contractName": "PerpMarketFactoryModule",
                "deployedOn": "contract.PerpMarketFactoryModule",
                "gasUsed": 2138358,
                "gasCost": "3731239064"
              },
              "PerpRewardDistributorFactoryModule": {
                "address": "0xAfd730659dca8Be838aD2F7f288803b59Ecf4aEA",
                "abi": [
                  "constructor(address _synthetix)",
                  "error DuplicateEntries()",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error Unauthorized(address addr)",
                  "error ZeroAddress()",
                  "error ZeroLength()",
                  "event RewardDistributorCreated(address indexed distributor)",
                  "function createRewardDistributor(tuple(uint128 poolId, address[] collateralTypes, string name, address token) data) returns (address)"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xf220afdede10d1e864f28477745baf0ee98a8286bcb9c545a290628212314545",
                "deployTxnBlockNumber": "6992424",
                "deployTimestamp": "1730493048",
                "sourceName": "contracts/modules/PerpRewardDistributorModule/PerpRewardDistributorFactoryModule.sol",
                "contractName": "PerpRewardDistributorFactoryModule",
                "deployedOn": "contract.PerpRewardDistributorFactoryModule",
                "gasUsed": 483692,
                "gasCost": "4185539218"
              },
              "BfpMarketRouter": {
                "address": "0x265877592e613d4a79a0f678da8013179837bbf4",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "error ZeroAddress()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error Unauthorized(address addr)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error UpgradeSimulationFailed()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "event PerpMarketSuspended(bool suspended)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function enableAllFeatures()",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "function suspendAllFeatures()",
                  "constructor(address _synthetix)",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error MarketNotFound(uint128 marketId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarketCreated(uint128 indexed id, bytes32 name)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function createMarket(tuple(bytes32 name, uint32 minDelegateTime) data) returns (uint128)",
                  "function getActiveMarketIds() view returns (uint128[])",
                  "function getMarketDigest(uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available)[] depositedCollaterals, bytes32 name, int128 skew, uint128 size, uint256 oraclePrice, int128 fundingVelocity, int128 fundingRate, uint128 utilizationRate, uint128 remainingLiquidatableSizeCapacity, uint128 lastLiquidationTime, uint128 totalTraderDebtUsd, uint256 totalCollateralValueUsd, int128 debtCorrection))",
                  "function getUtilizationDigest(uint128 marketId) view returns (tuple(uint128 lastComputedUtilizationRate, uint64 lastComputedTimestamp, uint128 currentUtilizationRate, uint256 utilization))",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128) pure returns (string)",
                  "function recomputeFunding(uint128 marketId)",
                  "function recomputeUtilization(uint128 marketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function setEthOracleNodeId(bytes32 ethOracleNodeId)",
                  "function setPyth(address pyth)",
                  "function setRewardDistributorImplementation(address implementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "error InvalidParameter(string parameter, string reason)",
                  "event GlobalMarketConfigured(address indexed from)",
                  "event MarketConfigured(uint128 indexed marketId, address indexed from)",
                  "function getMarketConfiguration() pure returns (tuple(address pyth, bytes32 ethOracleNodeId, address rewardDistributorImplementation, uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginUsd, uint128 keeperProfitMarginPercent, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent))",
                  "function getMarketConfigurationById(uint128 marketId) pure returns (tuple(bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd))",
                  "function setMarketConfiguration(tuple(uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginPercent, uint128 keeperProfitMarginUsd, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent) data)",
                  "function setMarketConfigurationById(tuple(uint128 marketId, bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd) data)",
                  "function setMinDelegationTime(uint128 marketId, uint32 minDelegationTime)",
                  "error AccountNotFound(uint128 accountId)",
                  "error AccountSplitProportionTooLarge()",
                  "error AccountSplitProportionTooSmall()",
                  "error CanLiquidatePosition()",
                  "error CollateralFound()",
                  "error DuplicateEntries()",
                  "error InsufficientMargin()",
                  "error InvalidHook(address hook)",
                  "error InvalidPositionSide()",
                  "error OrderFound()",
                  "error OverflowInt128ToUint128()",
                  "error PositionFlagged()",
                  "error PositionFound(uint128 accountId, uint128 marketId)",
                  "error PositionNotFound()",
                  "error ZeroProportion()",
                  "event AccountSplit(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "event AccountsMerged(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "function getAccountDigest(uint128 accountId, uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available, uint256 oraclePrice)[] depositedCollaterals, uint256 collateralUsd, uint128 debtUsd, tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm) position))",
                  "function getPositionDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm))",
                  "function mergeAccounts(uint128 fromId, uint128 toId, uint128 marketId)",
                  "function splitAccount(uint128 fromId, uint128 toId, uint128 marketId, uint128 proportion)",
                  "error ArrayLengthMismatch()",
                  "error DebtFound(uint128 accountId, uint128 marketId)",
                  "error InsufficientCollateral(address collateralAddress, uint256 available, uint256 value)",
                  "error InvalidRewardDistributor(address distributor)",
                  "error MaxCollateralExceeded(uint256 value, uint256 max)",
                  "error MissingRequiredCollateral(address collateralAddress)",
                  "error NilCollateral()",
                  "error NoDebt()",
                  "error UnsupportedCollateral(address collateralAddress)",
                  "error ZeroAmount()",
                  "event DebtPaid(uint128 indexed accountId, uint128 indexed marketId, uint128 oldDebt, uint128 newDebt, uint128 paidFromUsdCollateral)",
                  "event MarginCollateralConfigured(address indexed from, uint256 collaterals)",
                  "event MarginDeposit(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "event MarginWithdraw(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "function getDiscountedCollateralPrice(address collateralAddress, uint256 amount) view returns (uint256)",
                  "function getMarginCollateralConfiguration() view returns (tuple(address collateralAddress, bytes32 oracleNodeId, uint128 maxAllowable, uint128 skewScale, address rewardDistributor)[])",
                  "function getMarginDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint256 discountedMarginUsd, uint256 marginUsd, uint256 discountedCollateralUsd, uint256 collateralUsd))",
                  "function getMarginLiquidationOnlyReward(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getNetAssetValue(uint128 accountId, uint128 marketId, uint256 oraclePrice) view returns (uint256)",
                  "function getWithdrawableMargin(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function modifyCollateral(uint128 accountId, uint128 marketId, address collateralAddress, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint128 marketId, uint128 amount)",
                  "function setCollateralMaxAllowable(address collateralAddress, uint128 maxAllowable)",
                  "function setMarginCollateralConfiguration(address[] collateralAddresses, bytes32[] oracleNodeIds, uint128[] maxAllowables, uint128[] skewScales, address[] rewardDistributors)",
                  "function withdrawAllCollateral(uint128 accountId, uint128 marketId)",
                  "error DuplicateHook(address hook)",
                  "error InsufficientLiquidity()",
                  "error InvalidPrice()",
                  "error MaxHooksExceeded()",
                  "error MaxMarketSizeExceeded()",
                  "error NilOrder()",
                  "error OrderNotFound()",
                  "error OrderNotReady()",
                  "error OrderNotStale()",
                  "error OrderStale()",
                  "error PriceToleranceExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "error PriceToleranceNotExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "event OrderCommitted(uint128 indexed accountId, uint128 indexed marketId, uint64 commitmentTime, int128 sizeDelta, uint256 estimatedOrderFee, uint256 estimatedKeeperFee, bytes32 trackingCode)",
                  "event OrderSettled(uint128 indexed accountId, uint128 indexed marketId, uint64 settlementTime, int128 sizeDelta, uint256 orderFee, uint256 keeperFee, int128 accruedFunding, uint128 accruedUtilization, int256 pnl, uint256 fillPrice, uint128 accountDebt)",
                  "event OrderSettlementHookExecuted(uint128 indexed accountId, uint128 indexed marketId, address hook)",
                  "function cancelOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable",
                  "function cancelStaleOrder(uint128 accountId, uint128 marketId)",
                  "function commitOrder(uint128 accountId, uint128 marketId, int128 sizeDelta, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bytes32 trackingCode)",
                  "function getFillPrice(uint128 marketId, int128 size) view returns (uint256)",
                  "function getOraclePrice(uint128 marketId) view returns (uint256)",
                  "function getOrderDigest(uint128 accountId, uint128 marketId) view returns (tuple(int128 sizeDelta, uint64 commitmentTime, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bool isStale, bool isReady))",
                  "function getOrderFees(uint128 marketId, int128 sizeDelta, uint128 keeperFeeBufferUsd) view returns (uint256 orderFee, uint256 keeperFee)",
                  "function settleOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable",
                  "error CannotLiquidateMargin()",
                  "error CannotLiquidatePosition()",
                  "error LiquidationZeroCapacity()",
                  "error PositionNotFlagged()",
                  "event MarginLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperReward)",
                  "event PositionFlaggedLiquidation(uint128 indexed accountId, uint128 indexed marketId, address flagger, uint256 flagKeeperReward, uint256 flaggedPrice)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, int128 sizeBeforeLiquidation, int128 remainingSize, address keeper, address flagger, uint256 liqKeeperFee, uint256 liquidationPrice)",
                  "function flagPosition(uint128 accountId, uint128 marketId)",
                  "function getHealthFactor(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getLiquidationFees(uint128 accountId, uint128 marketId) view returns (uint256 flagKeeperReward, uint256 liqKeeperFee)",
                  "function getLiquidationMarginUsd(uint128 accountId, uint128 marketId, int128 sizeDelta) view returns (uint256 im, uint256 mm)",
                  "function getRemainingLiquidatableSizeCapacity(uint128 marketId) view returns (uint128 maxLiquidatableCapacity, uint128 remainingCapacity, uint128 lastLiquidationTimestamp)",
                  "function isMarginLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function liquidateMarginOnly(uint128 accountId, uint128 marketId)",
                  "function liquidatePosition(uint128 accountId, uint128 marketId)",
                  "error ZeroLength()",
                  "event RewardDistributorCreated(address indexed distributor)",
                  "function createRewardDistributor(tuple(uint128 poolId, address[] collateralTypes, string name, address token) data) returns (address)",
                  "event SettlementHookConfigured(address indexed from, uint256 hooks)",
                  "function getSettlementHookConfiguration() view returns (tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder))",
                  "function isSettlementHookWhitelisted(address hook) view returns (bool)",
                  "function setSettlementHookConfiguration(tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder) data)",
                  "event SplitAccountConfigured(address indexed from, uint256 hooks)",
                  "function getEndorsedSplitAccounts() view returns (address[] addresses)",
                  "function isEndorsedForSplitAccount(address addr) view returns (bool)",
                  "function setEndorsedSplitAccounts(address[] addresses)"
                ],
                "deployedOn": "router.BfpMarketRouter",
                "deployTxnHash": "0xab91fd1e9757a166f4559712f7a35ab32027e2c6e427e742944159ae7ced7c0b",
                "deployTxnBlockNumber": "8374772",
                "deployTimestamp": "1747828560",
                "contractName": "BfpMarketRouter",
                "sourceName": "BfpMarketRouter.sol",
                "gasUsed": 4291311,
                "gasCost": "697337671"
              },
              "BfpMarketProxy": {
                "address": "0x07049D05FC829933511274F6e3A828d464d3517E",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "error ZeroAddress()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error Unauthorized(address addr)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error UpgradeSimulationFailed()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "event PerpMarketSuspended(bool suspended)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function enableAllFeatures()",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "function suspendAllFeatures()",
                  "constructor(address _synthetix)",
                  "error InvalidCoreAddress(address synthetixCore)",
                  "error MarketNotFound(uint128 marketId)",
                  "error OverflowInt256ToInt128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "event FundingRecomputed(uint128 indexed marketId, int128 skew, int128 fundingRate, int128 fundingVelocity)",
                  "event MarketCreated(uint128 indexed id, bytes32 name)",
                  "event MarketSizeUpdated(uint128 indexed marketId, uint128 size, int128 skew)",
                  "event OrderCanceled(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperFee, uint64 commitmentTime)",
                  "event UtilizationRecomputed(uint128 indexed marketId, int128 skew, uint128 utilizationRate)",
                  "function createMarket(tuple(bytes32 name, uint32 minDelegateTime) data) returns (uint128)",
                  "function getActiveMarketIds() view returns (uint128[])",
                  "function getMarketDigest(uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available)[] depositedCollaterals, bytes32 name, int128 skew, uint128 size, uint256 oraclePrice, int128 fundingVelocity, int128 fundingRate, uint128 utilizationRate, uint128 remainingLiquidatableSizeCapacity, uint128 lastLiquidationTime, uint128 totalTraderDebtUsd, uint256 totalCollateralValueUsd, int128 debtCorrection))",
                  "function getUtilizationDigest(uint128 marketId) view returns (tuple(uint128 lastComputedUtilizationRate, uint64 lastComputedTimestamp, uint128 currentUtilizationRate, uint256 utilization))",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128) pure returns (string)",
                  "function recomputeFunding(uint128 marketId)",
                  "function recomputeUtilization(uint128 marketId)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function setEthOracleNodeId(bytes32 ethOracleNodeId)",
                  "function setPyth(address pyth)",
                  "function setRewardDistributorImplementation(address implementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "error InvalidParameter(string parameter, string reason)",
                  "event GlobalMarketConfigured(address indexed from)",
                  "event MarketConfigured(uint128 indexed marketId, address indexed from)",
                  "function getMarketConfiguration() pure returns (tuple(address pyth, bytes32 ethOracleNodeId, address rewardDistributorImplementation, uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginUsd, uint128 keeperProfitMarginPercent, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent))",
                  "function getMarketConfigurationById(uint128 marketId) pure returns (tuple(bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd))",
                  "function setMarketConfiguration(tuple(uint64 pythPublishTimeMin, uint64 pythPublishTimeMax, uint64 minOrderAge, uint64 maxOrderAge, uint256 minKeeperFeeUsd, uint256 maxKeeperFeeUsd, uint128 keeperProfitMarginPercent, uint128 keeperProfitMarginUsd, uint128 keeperSettlementGasUnits, uint128 keeperCancellationGasUnits, uint128 keeperLiquidationGasUnits, uint128 keeperFlagGasUnits, uint128 keeperLiquidateMarginGasUnits, address keeperLiquidationEndorsed, uint128 collateralDiscountScalar, uint128 minCollateralDiscount, uint128 maxCollateralDiscount, uint128 utilizationBreakpointPercent, uint128 lowUtilizationSlopePercent, uint128 highUtilizationSlopePercent) data)",
                  "function setMarketConfigurationById(tuple(uint128 marketId, bytes32 oracleNodeId, bytes32 pythPriceFeedId, uint128 makerFee, uint128 takerFee, uint128 maxMarketSize, uint128 maxFundingVelocity, uint128 skewScale, uint128 fundingVelocityClamp, uint128 minCreditPercent, uint256 minMarginUsd, uint256 minMarginRatio, uint256 incrementalMarginScalar, uint256 maintenanceMarginScalar, uint256 maxInitialMarginRatio, uint256 liquidationRewardPercent, uint128 liquidationLimitScalar, uint128 liquidationWindowDuration, uint128 liquidationMaxPd) data)",
                  "function setMinDelegationTime(uint128 marketId, uint32 minDelegationTime)",
                  "error AccountNotFound(uint128 accountId)",
                  "error AccountSplitProportionTooLarge()",
                  "error AccountSplitProportionTooSmall()",
                  "error CanLiquidatePosition()",
                  "error CollateralFound()",
                  "error DuplicateEntries()",
                  "error InsufficientMargin()",
                  "error InvalidHook(address hook)",
                  "error InvalidPositionSide()",
                  "error OrderFound()",
                  "error OverflowInt128ToUint128()",
                  "error PositionFlagged()",
                  "error PositionFound(uint128 accountId, uint128 marketId)",
                  "error PositionNotFound()",
                  "error ZeroProportion()",
                  "event AccountSplit(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "event AccountsMerged(uint128 indexed fromId, uint128 indexed toId, uint128 indexed marketId)",
                  "function getAccountDigest(uint128 accountId, uint128 marketId) view returns (tuple(tuple(address collateralAddress, uint256 available, uint256 oraclePrice)[] depositedCollaterals, uint256 collateralUsd, uint128 debtUsd, tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm) position))",
                  "function getPositionDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint128 accountId, uint128 marketId, uint256 remainingMarginUsd, uint256 healthFactor, uint256 notionalValueUsd, int256 pnl, int128 accruedFunding, uint128 accruedUtilization, uint256 entryPythPrice, uint256 entryPrice, uint256 oraclePrice, int128 size, uint256 im, uint256 mm))",
                  "function mergeAccounts(uint128 fromId, uint128 toId, uint128 marketId)",
                  "function splitAccount(uint128 fromId, uint128 toId, uint128 marketId, uint128 proportion)",
                  "error ArrayLengthMismatch()",
                  "error DebtFound(uint128 accountId, uint128 marketId)",
                  "error InsufficientCollateral(address collateralAddress, uint256 available, uint256 value)",
                  "error InvalidRewardDistributor(address distributor)",
                  "error MaxCollateralExceeded(uint256 value, uint256 max)",
                  "error MissingRequiredCollateral(address collateralAddress)",
                  "error NilCollateral()",
                  "error NoDebt()",
                  "error UnsupportedCollateral(address collateralAddress)",
                  "error ZeroAmount()",
                  "event DebtPaid(uint128 indexed accountId, uint128 indexed marketId, uint128 oldDebt, uint128 newDebt, uint128 paidFromUsdCollateral)",
                  "event MarginCollateralConfigured(address indexed from, uint256 collaterals)",
                  "event MarginDeposit(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "event MarginWithdraw(address indexed from, address indexed to, uint256 value, address collateralAddress)",
                  "function getDiscountedCollateralPrice(address collateralAddress, uint256 amount) view returns (uint256)",
                  "function getMarginCollateralConfiguration() view returns (tuple(address collateralAddress, bytes32 oracleNodeId, uint128 maxAllowable, uint128 skewScale, address rewardDistributor)[])",
                  "function getMarginDigest(uint128 accountId, uint128 marketId) view returns (tuple(uint256 discountedMarginUsd, uint256 marginUsd, uint256 discountedCollateralUsd, uint256 collateralUsd))",
                  "function getMarginLiquidationOnlyReward(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getNetAssetValue(uint128 accountId, uint128 marketId, uint256 oraclePrice) view returns (uint256)",
                  "function getWithdrawableMargin(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function modifyCollateral(uint128 accountId, uint128 marketId, address collateralAddress, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint128 marketId, uint128 amount)",
                  "function setCollateralMaxAllowable(address collateralAddress, uint128 maxAllowable)",
                  "function setMarginCollateralConfiguration(address[] collateralAddresses, bytes32[] oracleNodeIds, uint128[] maxAllowables, uint128[] skewScales, address[] rewardDistributors)",
                  "function withdrawAllCollateral(uint128 accountId, uint128 marketId)",
                  "error DuplicateHook(address hook)",
                  "error InsufficientLiquidity()",
                  "error InvalidPrice()",
                  "error MaxHooksExceeded()",
                  "error MaxMarketSizeExceeded()",
                  "error NilOrder()",
                  "error OrderNotFound()",
                  "error OrderNotReady()",
                  "error OrderNotStale()",
                  "error OrderStale()",
                  "error PriceToleranceExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "error PriceToleranceNotExceeded(int128 sizeDelta, uint256 price, uint256 limitPrice)",
                  "event OrderCommitted(uint128 indexed accountId, uint128 indexed marketId, uint64 commitmentTime, int128 sizeDelta, uint256 estimatedOrderFee, uint256 estimatedKeeperFee, bytes32 trackingCode)",
                  "event OrderSettled(uint128 indexed accountId, uint128 indexed marketId, uint64 settlementTime, int128 sizeDelta, uint256 orderFee, uint256 keeperFee, int128 accruedFunding, uint128 accruedUtilization, int256 pnl, uint256 fillPrice, uint128 accountDebt)",
                  "event OrderSettlementHookExecuted(uint128 indexed accountId, uint128 indexed marketId, address hook)",
                  "function cancelOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable",
                  "function cancelStaleOrder(uint128 accountId, uint128 marketId)",
                  "function commitOrder(uint128 accountId, uint128 marketId, int128 sizeDelta, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bytes32 trackingCode)",
                  "function getFillPrice(uint128 marketId, int128 size) view returns (uint256)",
                  "function getOraclePrice(uint128 marketId) view returns (uint256)",
                  "function getOrderDigest(uint128 accountId, uint128 marketId) view returns (tuple(int128 sizeDelta, uint64 commitmentTime, uint256 limitPrice, uint128 keeperFeeBufferUsd, address[] hooks, bool isStale, bool isReady))",
                  "function getOrderFees(uint128 marketId, int128 sizeDelta, uint128 keeperFeeBufferUsd) view returns (uint256 orderFee, uint256 keeperFee)",
                  "function settleOrder(uint128 accountId, uint128 marketId, bytes priceUpdateData) payable",
                  "error CannotLiquidateMargin()",
                  "error CannotLiquidatePosition()",
                  "error LiquidationZeroCapacity()",
                  "error PositionNotFlagged()",
                  "event MarginLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 keeperReward)",
                  "event PositionFlaggedLiquidation(uint128 indexed accountId, uint128 indexed marketId, address flagger, uint256 flagKeeperReward, uint256 flaggedPrice)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, int128 sizeBeforeLiquidation, int128 remainingSize, address keeper, address flagger, uint256 liqKeeperFee, uint256 liquidationPrice)",
                  "function flagPosition(uint128 accountId, uint128 marketId)",
                  "function getHealthFactor(uint128 accountId, uint128 marketId) view returns (uint256)",
                  "function getLiquidationFees(uint128 accountId, uint128 marketId) view returns (uint256 flagKeeperReward, uint256 liqKeeperFee)",
                  "function getLiquidationMarginUsd(uint128 accountId, uint128 marketId, int128 sizeDelta) view returns (uint256 im, uint256 mm)",
                  "function getRemainingLiquidatableSizeCapacity(uint128 marketId) view returns (uint128 maxLiquidatableCapacity, uint128 remainingCapacity, uint128 lastLiquidationTimestamp)",
                  "function isMarginLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function isPositionLiquidatable(uint128 accountId, uint128 marketId) view returns (bool)",
                  "function liquidateMarginOnly(uint128 accountId, uint128 marketId)",
                  "function liquidatePosition(uint128 accountId, uint128 marketId)",
                  "error ZeroLength()",
                  "event RewardDistributorCreated(address indexed distributor)",
                  "function createRewardDistributor(tuple(uint128 poolId, address[] collateralTypes, string name, address token) data) returns (address)",
                  "event SettlementHookConfigured(address indexed from, uint256 hooks)",
                  "function getSettlementHookConfiguration() view returns (tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder))",
                  "function isSettlementHookWhitelisted(address hook) view returns (bool)",
                  "function setSettlementHookConfiguration(tuple(address[] whitelistedHookAddresses, uint32 maxHooksPerOrder) data)",
                  "event SplitAccountConfigured(address indexed from, uint256 hooks)",
                  "function getEndorsedSplitAccounts() view returns (address[] addresses)",
                  "function isEndorsedForSplitAccount(address addr) view returns (bool)",
                  "function setEndorsedSplitAccounts(address[] addresses)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "PerpAccountProxy": {
                "address": "0xBeE85D5Fc4D486D06086560928a79d9d016D8F2E",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error AlreadyInitialized()",
                  "error CannotSelfApprove(address addr)",
                  "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                  "error InvalidOwner(address addr)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidTransferRecipient(address addr)",
                  "error OverflowUint256ToUint128()",
                  "error TokenAlreadyMinted(uint256 id)",
                  "error TokenDoesNotExist(uint256 id)",
                  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                  "function approve(address to, uint256 tokenId)",
                  "function balanceOf(address holder) view returns (uint256 balance)",
                  "function burn(uint256 tokenId)",
                  "function getApproved(uint256 tokenId) view returns (address operator)",
                  "function initialize(string tokenName, string tokenSymbol, string uri)",
                  "function isApprovedForAll(address holder, address operator) view returns (bool)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 tokenId)",
                  "function name() view returns (string)",
                  "function ownerOf(uint256 tokenId) view returns (address)",
                  "function safeMint(address to, uint256 tokenId, bytes data)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                  "function setAllowance(uint256 tokenId, address spender)",
                  "function setApprovalForAll(address operator, bool approved)",
                  "function setBaseTokenURI(string uri)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function symbol() view returns (string)",
                  "function tokenByIndex(uint256 index) view returns (uint256)",
                  "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                  "function tokenURI(uint256 tokenId) view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transferFrom(address from, address to, uint256 tokenId)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.init_or_upgrade_nft",
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "settings": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix:latest",
              "synthetixPreset": "main"
            },
            "imports": {
              "synthetix": {
                "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
                "contracts": {
                  "AccountModule": {
                    "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "error ZeroAddress()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                    "deployTxnBlockNumber": "8374751",
                    "deployTimestamp": "1747828308",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "840868922"
                  },
                  "AccountTokenModule": {
                    "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                    "deployTxnBlockNumber": "6660715",
                    "deployTimestamp": "1725880512",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "49074705690"
                  },
                  "AssociateDebtModule": {
                    "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                    "deployTxnBlockNumber": "8374752",
                    "deployTimestamp": "1747828320",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "812346162"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                    "abi": [
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error Unauthorized(address addr)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1160601901"
                  },
                  "CcipReceiverModule": {
                    "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                    "abi": [
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error Unauthorized(address addr)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                    "deployTxnBlockNumber": "6660717",
                    "deployTimestamp": "1725880536",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "49006680826"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                    "abi": [
                      "error EmptyRevertReason()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error PositionOutOfBounds()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                    "deployTxnBlockNumber": "8374753",
                    "deployTimestamp": "1747828332",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "799886935"
                  },
                  "CollateralModule": {
                    "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                    "abi": [
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error AccountNotFound(uint128 accountId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                    "deployTxnBlockNumber": "8374754",
                    "deployTimestamp": "1747828344",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "802377814"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                    "deployTxnBlockNumber": "6660720",
                    "deployTimestamp": "1725880572",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "49967783440"
                  },
                  "FeatureFlagModule": {
                    "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                    "abi": [
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                    "deployTxnBlockNumber": "6660721",
                    "deployTimestamp": "1725880596",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "47712806352"
                  },
                  "IssueUSDModule": {
                    "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                    "abi": [
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                    "deployTxnBlockNumber": "8374755",
                    "deployTimestamp": "1747828356",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "794478182"
                  },
                  "LiquidationModule": {
                    "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error CannotScaleEmptyMapping()",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint256ToUint64()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PositionOutOfBounds()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                    "deployTxnBlockNumber": "8374756",
                    "deployTimestamp": "1747828368",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "816261199"
                  },
                  "MarketCollateralModule": {
                    "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                    "abi": [
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "error Unauthorized(address addr)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                    "deployTxnBlockNumber": "8374757",
                    "deployTimestamp": "1747828380",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "812078176"
                  },
                  "MarketManagerModule": {
                    "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                    "abi": [
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IncorrectMarketInterface(address market)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                    "deployTxnBlockNumber": "8374758",
                    "deployTimestamp": "1747828392",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "798490927"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                    "abi": [
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                    "deployTxnBlockNumber": "8374759",
                    "deployTimestamp": "1747828404",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "802346058"
                  },
                  "PoolModule": {
                    "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                    "deployTxnBlockNumber": "8374760",
                    "deployTimestamp": "1747828416",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "791076552"
                  },
                  "RewardsManagerModule": {
                    "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error RewardUnavailable(address distributor)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                    "deployTxnBlockNumber": "8374761",
                    "deployTimestamp": "1747828428",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "784183135"
                  },
                  "USDTokenModule": {
                    "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error Unauthorized(address addr)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                    "deployTxnBlockNumber": "6660731",
                    "deployTimestamp": "1725880740",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "53285251123"
                  },
                  "UtilsModule": {
                    "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                    "abi": [
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                    "deployTxnBlockNumber": "8374762",
                    "deployTimestamp": "1747828440",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "783578952"
                  },
                  "VaultModule": {
                    "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "error PoolNotFound(uint128 poolId)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                    "deployTxnBlockNumber": "8374763",
                    "deployTimestamp": "1747828452",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "756426945"
                  },
                  "InitialModuleBundle": {
                    "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/modules/InitialModuleBundle.sol",
                    "contractName": "InitialModuleBundle",
                    "deployedOn": "contract.InitialModuleBundle",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialCoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0x828EED723cAF0A8F822249231266E38dF614923C",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy",
                    "gasUsed": 185358,
                    "gasCost": "978908043"
                  },
                  "AccountRouter": {
                    "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployedOn": "router.AccountRouter",
                    "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                    "deployTxnBlockNumber": "8374764",
                    "deployTimestamp": "1747828464",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "769642764"
                  },
                  "CoreRouter": {
                    "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployedOn": "router.CoreRouter",
                    "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                    "deployTxnBlockNumber": "8374765",
                    "deployTimestamp": "1747828476",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621270,
                    "gasCost": "779829074"
                  },
                  "USDRouter": {
                    "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployedOn": "router.USDRouter",
                    "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                    "deployTxnBlockNumber": "8374766",
                    "deployTimestamp": "1747828488",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087124,
                    "gasCost": "790603927"
                  },
                  "CoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "constructorArgs": [
                      "<%= contracts.InitialModuleBundle.address %>",
                      "<%= settings.owner %>"
                    ],
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "AccountProxy": {
                    "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "USDProxy": {
                    "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "settings": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                        "abi": [
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                        "deployTxnBlockNumber": "8374748",
                        "deployTimestamp": "1747828272",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "807273578"
                      },
                      "CoreModule": {
                        "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [
                          "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                          "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployedOn": "router.OracleRouter",
                        "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                        "deployTxnBlockNumber": "8374749",
                        "deployTimestamp": "1747828284",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "866245566"
                      },
                      "Proxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      }
                    },
                    "imports": {
                      "trusted_multicall_forwarder": {
                        "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                        "tags": [
                          "latest"
                        ],
                        "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                        "preset": "with-oracle-manager",
                        "settings": {
                          "salt": "salt"
                        },
                        "contracts": {
                          "TrustedMulticallForwarder": {
                            "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                            "abi": [
                              "constructor()",
                              "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                              "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                              "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                              "function getBasefee() view returns (uint256 basefee)",
                              "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                              "function getBlockNumber() view returns (uint256 blockNumber)",
                              "function getChainId() view returns (uint256 chainid)",
                              "function getCurrentBlockCoinbase() view returns (address coinbase)",
                              "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                              "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                              "function getEthBalance(address addr) view returns (uint256 balance)",
                              "function getLastBlockHash() view returns (bytes32 blockHash)",
                              "function getPrevRandao() view returns (uint256 prevrandao)",
                              "function nonces(address owner) view returns (uint256)",
                              "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                              "event EIP712DomainChanged()",
                              "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                              "error AddressInsufficientBalance(address account)",
                              "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                              "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                              "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                              "error ERC2771UntrustfulTarget(address target, address forwarder)",
                              "error FailedInnerCall()",
                              "error InvalidAccountNonce(address account, uint256 currentNonce)",
                              "error InvalidShortString()",
                              "error StringTooLong(string str)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "src/TrustedMulticallForwarder.sol",
                            "contractName": "TrustedMulticallForwarder",
                            "deployedOn": "contract.TrustedMulticallForwarder",
                            "gasUsed": 0,
                            "gasCost": "0"
                          }
                        },
                        "extras": {
                          "salt": "salt"
                        }
                      }
                    },
                    "settings": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    },
                    "txns": {
                      "upgrade_proxy": {
                        "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                        "blockNumber": "8374750",
                        "timestamp": "1747828296",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                                "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55420,
                        "gasCost": "863204254",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle",
                    "gasUsed": 108479,
                    "gasCost": "922529803",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                    "blockNumber": "8374767",
                    "timestamp": "1747828500",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                            "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51327,
                    "gasCost": "785077138",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 56949,
                    "gasCost": "1117962692",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 57009,
                    "gasCost": "1081589799",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_createAccount": {
                    "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 57021,
                    "gasCost": "1189291565",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 57081,
                    "gasCost": "1145067438",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_deposit": {
                    "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 56949,
                    "gasCost": "1099485069",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 57141,
                    "gasCost": "1050556709",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 57057,
                    "gasCost": "997930950",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidate": {
                    "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 56973,
                    "gasCost": "1064136427",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                    "blockNumber": "8374768",
                    "timestamp": "1747828512",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "769840723",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 57033,
                    "gasCost": "1013537198",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                    "blockNumber": "8374769",
                    "timestamp": "1747828524",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "745322710",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 56949,
                    "gasCost": "977776751",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdraw": {
                    "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 56961,
                    "gasCost": "1025829153",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 57153,
                    "gasCost": "993756197",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 57069,
                    "gasCost": "960143044",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_account": {
                    "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                    "blockNumber": "8374770",
                    "timestamp": "1747828536",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80746,
                    "gasCost": "743339977",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_usd": {
                    "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                    "blockNumber": "8374771",
                    "timestamp": "1747828548",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94076,
                    "gasCost": "728100935",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "set_oracle_manager": {
                    "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager",
                    "gasUsed": 54810,
                    "gasCost": "979601782",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            {
                              "depositingEnabled": true,
                              "issuanceRatioD18": "10000000000000000000",
                              "liquidationRatioD18": "10000000000000000000",
                              "liquidationRewardD18": "0",
                              "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                              "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                            }
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral",
                    "gasUsed": 240627,
                    "gasCost": "1006144889",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                }
              }
            },
            "txns": {
              "add_to_feature_flag_allowlist_register_market": {
                "hash": "0x5f69077e0f904b93131c7f3cac7b4ee8a606e5e33fb7e1305f2f68dd47914bd3",
                "blockNumber": "6486118",
                "timestamp": "1723469580",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x07049D05FC829933511274F6e3A828d464d3517E"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.add_to_feature_flag_allowlist_register_market",
                "gasUsed": 84533,
                "gasCost": "25906934749",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "upgrade_proxy": {
                "hash": "0x96719f5130e9ee7946c7f571308440c1191242cebbecd79a5fb0059150733695",
                "blockNumber": "8374773",
                "timestamp": "1747828572",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x07049D05FC829933511274F6e3A828d464d3517E",
                        "0x265877592e613D4a79A0F678Da8013179837bBF4"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 55616,
                "gasCost": "689707842",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "init_or_upgrade_nft": {
                "hash": "0x100f99c0e2b61c2f9f12aab2865ee7ad148d61b0ed516c7ee44c394c48427320",
                "blockNumber": "8374774",
                "timestamp": "1747828584",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xBeE85D5Fc4D486D06086560928a79d9d016D8F2E",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                        "0xBeE85D5Fc4D486D06086560928a79d9d016D8F2E",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_or_upgrade_nft",
                "gasUsed": 80809,
                "gasCost": "662961544",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "set_reward_distributor_implementation": {
                "hash": "0xf81ed75c4645c5d8e974db621c733a4c26b4c297b37526d7c1ce4513c5294fcc",
                "blockNumber": "6992427",
                "timestamp": "1730493084",
                "events": {},
                "deployedOn": "invoke.set_reward_distributor_implementation",
                "gasUsed": 38038,
                "gasCost": "3969688020",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix:latest",
              "synthetixPreset": "main"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "setting.weth_address": {
      "artifacts": {
        "settings": {
          "weth_address": "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0"
        }
      },
      "hash": "4108656c285f0825b69a58a2843e08b8",
      "version": 7
    },
    "invoke.BfpMarketProxy_createMarket_eth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_createMarket_eth": {
            "hash": "0x2057e73e5a7b832b97033228cdd8904b2ac318cde079ed426d9e7f97973ba8f3",
            "blockNumber": "6660771",
            "timestamp": "1725881388",
            "events": {
              "MarketCreated": [
                {
                  "name": "MarketCreated",
                  "args": [
                    "4",
                    "0x4554485045525000000000000000000000000000000000000000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_createMarket_eth",
            "gasUsed": 223262,
            "gasCost": "69057312756",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "eth_market_id": "4"
        }
      },
      "hash": "805f5afdb3460c34e6e7aedb1c6614a0",
      "version": 7
    },
    "invoke.BfpMarketProxy_enableAllFeatures": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_enableAllFeatures": {
            "hash": "0x58be26fb9639c216f97b9688f80257f50e5835011775c05b54b8e0386c6b7021",
            "blockNumber": "6486126",
            "timestamp": "1723469688",
            "events": {
              "PerpMarketSuspended": [
                {
                  "name": "PerpMarketSuspended",
                  "args": [
                    false
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_enableAllFeatures",
            "gasUsed": 302723,
            "gasCost": "27401722639",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "b4415300273f02a868b89e8bd1a38df0",
      "version": 7
    },
    "invoke.BfpMarketProxy_setEthOracleNodeId": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_setEthOracleNodeId": {
            "hash": "0x3f55ef041c9193d296afcdf95b75d42a8603992a2303645c1aea3a63bc995579",
            "blockNumber": "6486127",
            "timestamp": "1723469700",
            "events": {},
            "deployedOn": "invoke.BfpMarketProxy_setEthOracleNodeId",
            "gasUsed": 55132,
            "gasCost": "26661327675",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "369f3e8ad4634ac91ac1907bb03f1291",
      "version": 7
    },
    "invoke.BfpMarketProxy_setMarketConfiguration": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_setMarketConfiguration": {
            "hash": "0xc2fde1b263cc0c11d60ada28cd13657895e3aaf57c033a06b452ac4e57ac6b7b",
            "blockNumber": "6992429",
            "timestamp": "1730493108",
            "events": {
              "GlobalMarketConfigured": [
                {
                  "name": "GlobalMarketConfigured",
                  "args": [
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_setMarketConfiguration",
            "gasUsed": 86563,
            "gasCost": "4236309129",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "4363ab8aaf0191f8272a43b6158a45f1",
      "version": 7
    },
    "invoke.BfpMarketProxy_setPyth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_setPyth": {
            "hash": "0xc390ded867c17da13c513040b65664c4171cb93e7804331059f454ee0796914e",
            "blockNumber": "6486129",
            "timestamp": "1723469724",
            "events": {},
            "deployedOn": "invoke.BfpMarketProxy_setPyth",
            "gasUsed": 55177,
            "gasCost": "27838660586",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "7eaf073c868be836c3c577d9c0e35c99",
      "version": 7
    },
    "invoke.configureWethCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureWethCollateral": {
            "hash": "0x982ba4eb198625d0321a811a0f7c76009cebf717ec1eb30ff7476953f5605bf7",
            "blockNumber": "6660772",
            "timestamp": "1725881400",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0",
                    {
                      "depositingEnabled": true,
                      "issuanceRatioD18": "2000000000000000000",
                      "liquidationRatioD18": "1100000000000000000",
                      "liquidationRewardD18": "10000000000000000",
                      "oracleNodeId": "0xa1ad04e5fe674fe144be389adb9340f0b15e73d866da4e70145eec4ef867955b",
                      "tokenAddress": "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0",
                      "minDelegationD18": "10000000000000000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureWethCollateral",
            "gasUsed": 56210,
            "gasCost": "68627197432",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "dc9ae8568d006f49d80fd28230554713",
      "version": 7
    },
    "invoke.BfpMarketProxy_createRewardDistributor_weth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_createRewardDistributor_weth": {
            "hash": "0x53142a08e7852da0829c676b5c7edf0219ffc0bff9be4cdbd31adf02a5e153b8",
            "blockNumber": "6486132",
            "timestamp": "1723469760",
            "events": {
              "RewardDistributorCreated": [
                {
                  "name": "RewardDistributorCreated",
                  "args": [
                    "0x11aE912FF8F2633aFD4A2438Ff35400d6228B947"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_createRewardDistributor_weth",
            "gasUsed": 296748,
            "gasCost": "29136748922",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {
          "weth_rewards_distributor": "0x11aE912FF8F2633aFD4A2438Ff35400d6228B947"
        }
      },
      "hash": "945e36f19a4cc5421922ebdfa4658b27",
      "version": 7
    },
    "invoke.BfpMarketProxy_setMarketConfigurationById_eth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_setMarketConfigurationById_eth": {
            "hash": "0xd181e21175d59e6b765ec17f75aa08e9ccff61501694410909621e8e9377a18a",
            "blockNumber": "6660773",
            "timestamp": "1725881424",
            "events": {
              "MarketConfigured": [
                {
                  "name": "MarketConfigured",
                  "args": [
                    "4",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_setMarketConfigurationById_eth",
            "gasUsed": 357220,
            "gasCost": "66531661938",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "9b4d3d5251c30102c7f39e262f7e3374",
      "version": 7
    },
    "invoke.CoreProxy_configureMaximumMarketCollateral_weth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "CoreProxy_configureMaximumMarketCollateral_weth": {
            "hash": "0x2a98943224b342f32325ad74e1609f5b2c2669c6e0edb8df76e2950260f6d1f8",
            "blockNumber": "6660774",
            "timestamp": "1725881436",
            "events": {
              "MaximumMarketCollateralConfigured": [
                {
                  "name": "MaximumMarketCollateralConfigured",
                  "args": [
                    "4",
                    "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0",
                    "20000000000000000000000",
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.CoreProxy_configureMaximumMarketCollateral_weth",
            "gasUsed": 57927,
            "gasCost": "69478326902",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "9c30bf7e01abfe470f86c5eda0603d00",
      "version": 7
    },
    "invoke.BfpMarketProxy_setMarginCollateralConfiguration": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "BfpMarketProxy_setMarginCollateralConfiguration": {
            "hash": "0x0b84a940a3f011fe25105f851ec5c53ea448181e56ccc45d285e51561d59b011",
            "blockNumber": "6660775",
            "timestamp": "1725881448",
            "events": {
              "MarginCollateralConfigured": [
                {
                  "name": "MarginCollateralConfigured",
                  "args": [
                    "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9",
                    "2"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.BfpMarketProxy_setMarginCollateralConfiguration",
            "gasUsed": 121296,
            "gasCost": "67446938352",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "74e2542462b3ece5e0b85ad547c796bb",
      "version": 7
    },
    "invoke.CoreProxy_registerRewardsDistributor_weth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "CoreProxy_registerRewardsDistributor_weth": {
            "hash": "0x5e9277c10a89b9719f2dc2f7ce0af5ccf1e98d7250e5521c9b5cce11a85c791f",
            "blockNumber": "6486139",
            "timestamp": "1723469844",
            "events": {
              "RewardsDistributorRegistered": [
                {
                  "name": "RewardsDistributorRegistered",
                  "args": [
                    "1",
                    "0x5f75Ea59fC0CF335E09775eB676cd53c1C49Cbf0",
                    "0x11aE912FF8F2633aFD4A2438Ff35400d6228B947"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.CoreProxy_registerRewardsDistributor_weth",
            "gasUsed": 131732,
            "gasCost": "27726713075",
            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
          }
        },
        "settings": {}
      },
      "hash": "0e62b5070ba41f301a7487e7e8fd1fc9",
      "version": 7
    },
    "setting.snxusd_max_collateral": {
      "artifacts": {
        "settings": {
          "snxusd_max_collateral": "1000000000000000000000000"
        }
      },
      "hash": "563261047cda85ae592800486d39bc77",
      "version": 7
    },
    "setting.max_keeper_fee_usd": {
      "artifacts": {
        "settings": {
          "max_keeper_fee_usd": "100000000000000000000"
        }
      },
      "hash": "ad27ad0c2fad068c59a31bad017dda13",
      "version": 7
    },
    "setting.min_keeper_fee_usd": {
      "artifacts": {
        "settings": {
          "min_keeper_fee_usd": "10000000000000000000"
        }
      },
      "hash": "a2f32c5aee3e6b3d3f034554cca7a559",
      "version": 7
    },
    "setting.oracle_manager_package": {
      "artifacts": {
        "settings": {
          "oracle_manager_package": "oracle-manager:3.10.1"
        }
      },
      "hash": "92fdcb64b3c75d08a007bdd55d9cbe33",
      "version": 7
    },
    "clone.oracle_manager": {
      "artifacts": {
        "imports": {
          "oracle_manager": {
            "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
            "tags": [
              "latest"
            ],
            "target": "oracle-manager:3.10.1@main",
            "preset": "main",
            "contracts": {
              "NodeModule": {
                "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                "abi": [
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidPrice(int256 price)",
                  "error NodeNotRegistered(bytes32 nodeId)",
                  "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowInt56ToInt24()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint160()",
                  "error OverflowUint56ToInt56()",
                  "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                  "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                  "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                  "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                "deployTxnBlockNumber": "8374748",
                "deployTimestamp": "1747828272",
                "sourceName": "contracts/modules/NodeModule.sol",
                "contractName": "NodeModule",
                "deployedOn": "contract.NodeModule",
                "gasUsed": 4896112,
                "gasCost": "807273578"
              },
              "CoreModule": {
                "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1727702064",
                "sourceName": "contracts/modules/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "InitialProxy": {
                "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                "abi": [
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)"
                ],
                "constructorArgs": [
                  "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1727702064",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "OracleRouter": {
                "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidPrice(int256 price)",
                  "error NodeNotRegistered(bytes32 nodeId)",
                  "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowInt56ToInt24()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint160()",
                  "error OverflowUint56ToInt56()",
                  "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                  "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                  "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                  "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                ],
                "deployedOn": "router.OracleRouter",
                "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                "deployTxnBlockNumber": "8374749",
                "deployTimestamp": "1747828284",
                "contractName": "OracleRouter",
                "sourceName": "OracleRouter.sol",
                "gasUsed": 1728151,
                "gasCost": "866245566"
              },
              "Proxy": {
                "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error EmptyRevertReason()",
                  "error Errors(bytes[] errors)",
                  "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidPrice(int256 price)",
                  "error NodeNotRegistered(bytes32 nodeId)",
                  "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowInt56ToInt24()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint160()",
                  "error OverflowUint56ToInt56()",
                  "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                  "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                  "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                  "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                  "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                  "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "imports": {
              "trusted_multicall_forwarder": {
                "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                "tags": [
                  "latest"
                ],
                "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                "preset": "with-oracle-manager",
                "settings": {
                  "salt": "salt"
                },
                "contracts": {
                  "TrustedMulticallForwarder": {
                    "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                    "abi": [
                      "constructor()",
                      "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                      "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                      "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                      "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                      "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                      "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                      "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                      "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                      "function getBasefee() view returns (uint256 basefee)",
                      "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                      "function getBlockNumber() view returns (uint256 blockNumber)",
                      "function getChainId() view returns (uint256 chainid)",
                      "function getCurrentBlockCoinbase() view returns (address coinbase)",
                      "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                      "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                      "function getEthBalance(address addr) view returns (uint256 balance)",
                      "function getLastBlockHash() view returns (bytes32 blockHash)",
                      "function getPrevRandao() view returns (uint256 prevrandao)",
                      "function nonces(address owner) view returns (uint256)",
                      "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                      "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                      "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                      "event EIP712DomainChanged()",
                      "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                      "error AddressInsufficientBalance(address account)",
                      "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                      "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                      "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                      "error ERC2771UntrustfulTarget(address target, address forwarder)",
                      "error FailedInnerCall()",
                      "error InvalidAccountNonce(address account, uint256 currentNonce)",
                      "error InvalidShortString()",
                      "error StringTooLong(string str)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1727702064",
                    "sourceName": "src/TrustedMulticallForwarder.sol",
                    "contractName": "TrustedMulticallForwarder",
                    "deployedOn": "contract.TrustedMulticallForwarder",
                    "gasUsed": 0,
                    "gasCost": "0"
                  }
                },
                "extras": {
                  "salt": "salt"
                }
              }
            },
            "settings": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "oracle-manager-official"
            },
            "txns": {
              "upgrade_proxy": {
                "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                "blockNumber": "8374750",
                "timestamp": "1747828296",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 55420,
                "gasCost": "863204254",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "oracle-manager-official"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "var.bfp": {
      "artifacts": {
        "settings": {
          "keeper_profit_margin_usd": "5000000000000000000",
          "keeper_profit_margin_percent": "10000000000000000",
          "min_collateral_discount": "0",
          "low_utilization_slope_percent": "0",
          "high_utilization_slope_percent": "0"
        }
      },
      "hash": "15be5c3e702730ebab545a15cd8a12a5",
      "version": 7
    },
    "setting.snx_v4_onchain": {
      "artifacts": {
        "settings": {
          "snx_v4_onchain": "synthetix-v4-onchain:0.1.6"
        }
      },
      "hash": "e8be02805f76d3620b9e57944eabb4af",
      "version": 7
    },
    "provision.snx_v4_onchain": {
      "artifacts": {
        "imports": {
          "snx_v4_onchain": {
            "url": "ipfs://QmZPoANti1DtHhh7ubxo3Y8v7e4LEmuveAGDiTupyhmxKo",
            "tags": [
              "latest"
            ],
            "target": "synthetix-v4-onchain:0.1.6@main",
            "preset": "main",
            "contracts": {
              "CoreModule": {
                "address": "0xB002BC2c2a43e497e7eBBCB4166771F02Ad12f8a",
                "abi": [
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function upgradeTo(address newImplementation)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xe08fb212b7525e105e29ff23e5ebeef0c1bcf61c0fef24a2bb6974ff59e2879c",
                "deployTxnBlockNumber": "8323663",
                "deployTimestamp": "1747208604",
                "sourceName": "src/perps-market/contracts/modules/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule",
                "gasUsed": 731332,
                "gasCost": "2236927947"
              },
              "FeatureFlagModule": {
                "address": "0xC314eA02b723A0f1b9465dF97A73f788f23500b9",
                "abi": [
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0xa1e48d1d39cbbaf75fdee691dc306a33a0fd368d2d2dd34dc77a970f07ffbdbd",
                "deployTxnBlockNumber": "8323664",
                "deployTimestamp": "1747208616",
                "sourceName": "src/perps-market/contracts/modules/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 1174845,
                "gasCost": "2163409774"
              },
              "FeeCollectorMock": {
                "address": "0xa9044db85CdEDc3a5C8621aC5FADe290a414C3A8",
                "abi": [
                  "function mockSetFeeRatio(uint256 _feeRatio)",
                  "function quoteFees(uint128 marketId, uint256 feeAmount, address sender) view returns (uint256)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "0x0e2dc30bcc6dc33894274b4bbca29ac638745e426ca3d9f49b011270f9fb463b",
                "deployTxnBlockNumber": "8323665",
                "deployTimestamp": "1747208628",
                "sourceName": "src/perps-market/contracts/mocks/FeeCollectorMock.sol",
                "contractName": "FeeCollectorMock",
                "deployedOn": "contract.FeeCollectorMock",
                "gasUsed": 198407,
                "gasCost": "2129100125"
              },
              "MarketConfigurationModule": {
                "address": "0x6FCD9528d7b958986584919F74C54A7c45A05F73",
                "abi": [
                  "constructor(uint256 _makerFee, uint256 _takerFee, uint256 _maxMarketSize, uint256 _initialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _lockedOiRatioD18, uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _minimumPositionMargin, uint256 _minimumInitialMarginRatioD18, uint256 _maxLiquidationPd, uint256 _maxMarketValue)",
                  "function calculateRequiredMargins(int128 size, uint256 price) view returns (uint256 initialMarginRatio, uint256 maintenanceMarginRatio, uint256 initialMargin, uint256 maintenanceMargin)",
                  "function getLiquidationParameters() view returns (uint256 _initialMarginRatioD18, uint256 _minimumInitialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _minimumPositionMargin)",
                  "function getLockedOiRatio() view returns (uint256 _lockedOiRatioD18)",
                  "function getMaxLiquidationParameters() view returns (uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _maxLiquidationPd)",
                  "function getMaxMarketSize() view returns (uint256 _maxMarketSize)",
                  "function getMaxMarketValue() view returns (uint256 _maxMarketValue)",
                  "function getOrderFees() view returns (uint256 _makerFee, uint256 _takerFee)",
                  "function initialMarginRatioD18() view returns (uint256)",
                  "function lockedOiRatioD18() view returns (uint256)",
                  "function maintenanceMarginScalarD18() view returns (uint256)",
                  "function makerFee() view returns (uint256)",
                  "function maxLiquidationAmountInWindow() view returns (uint256)",
                  "function maxLiquidationLimitAccumulationMultiplier() view returns (uint256)",
                  "function maxLiquidationPd() view returns (uint256)",
                  "function maxMarketSize() view returns (uint256)",
                  "function maxMarketValue() view returns (uint256)",
                  "function maxSecondsInLiquidationWindow() view returns (uint256)",
                  "function minimumInitialMarginRatioD18() view returns (uint256)",
                  "function minimumPositionMargin() view returns (uint256)",
                  "function takerFee() view returns (uint256)",
                  "event LiquidationParametersSet(uint128 indexed marketId, uint256 initialMarginRatioD18, uint256 maintenanceMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 minimumPositionMargin)",
                  "event LockedOiRatioSet(uint128 indexed marketId, uint256 lockedOiRatioD18)",
                  "event MarketPriceDataUpdated(uint128 indexed marketId, bytes32 feedId, uint256 strictStalenessTolerance)",
                  "event MaxLiquidationParametersSet(uint128 indexed marketId, uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd)",
                  "event MaxMarketSizeSet(uint128 indexed marketId, uint256 maxMarketSize)",
                  "event MaxMarketValueSet(uint128 indexed marketId, uint256 maxMarketValue)",
                  "event OrderFeesSet(uint128 indexed marketId, uint256 makerFeeRatio, uint256 takerFeeRatio)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "error MaxOpenInterestReached(uint128 marketId, uint256 maxMarketSize, int256 newSideSize)",
                  "error MaxUSDOpenInterestReached(uint128 marketId, uint256 maxMarketValue, int256 newSideSize, uint256 price)",
                  "error OverflowInt256ToUint256()"
                ],
                "constructorArgs": [
                  "5000000000000000",
                  "10000000000000000",
                  "1000000000000000000000000",
                  "20000000000000000",
                  "500000000000000000",
                  "1000000000000000000",
                  "2",
                  "60",
                  "100000000000000000000",
                  "10000000000000000",
                  "100000000000000000",
                  "500000000000000000000000"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xfdb3a02ec9840d266dab4669d46032eceb4672063597155272659350f828ad85",
                "deployTxnBlockNumber": "8323666",
                "deployTimestamp": "1747208640",
                "sourceName": "src/perps-market/contracts/modules/MarketConfigurationModule.sol",
                "contractName": "MarketConfigurationModule",
                "deployedOn": "contract.MarketConfigurationModule",
                "gasUsed": 536924,
                "gasCost": "2152384900"
              },
              "PerpsCollateralConfiguration": {
                "address": "0x22383d6965651DF9048413342f4CD87b94205819",
                "abi": [
                  "constructor(uint128 _id, uint256 _maxAmount, uint256 _upperLimitDiscount, uint256 _lowerLimitDiscount, uint256 _discountScalar)",
                  "function discountScalar() view returns (uint256)",
                  "function getConfig() view returns (uint256 _maxAmount, uint256 _upperLimitDiscount, uint256 _lowerLimitDiscount, uint256 _discountScalar)",
                  "function id() view returns (uint128)",
                  "function lowerLimitDiscount() view returns (uint256)",
                  "function maxAmount() view returns (uint256)",
                  "function upperLimitDiscount() view returns (uint256)",
                  "error InvalidId(uint128 id)"
                ],
                "constructorArgs": [
                  "0",
                  "500000000000000000000000000",
                  "0",
                  "0",
                  "0"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x53dc7c776c8b77822898e130fc3c5f1010658fe9acf963fcd1d64ad86b4a98fc",
                "deployTxnBlockNumber": "8323667",
                "deployTimestamp": "1747208652",
                "sourceName": "src/perps-market/contracts/config/PerpsCollateralConfiguration.sol",
                "contractName": "PerpsCollateralConfiguration",
                "deployedOn": "contract.PerpsCollateralConfiguration",
                "gasUsed": 170864,
                "gasCost": "2219405623"
              },
              "InitialProxy": {
                "address": "0xEa1ef48647E2418b50480724E120C6A0b0fb54c3",
                "abi": [
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function upgradeTo(address newImplementation)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()"
                ],
                "constructorArgs": [
                  "0xB002BC2c2a43e497e7eBBCB4166771F02Ad12f8a",
                  "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xeb1dc9b2bb6385b2317632c2cfbfb4da5b2da87ff88aebea6145646c280b47b3",
                "deployTxnBlockNumber": "8323668",
                "deployTimestamp": "1747208664",
                "sourceName": "src/perps-market/contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 169366,
                "gasCost": "2162202768"
              },
              "GlobalPerpsMarketModule": {
                "address": "0xD042EA6c1816536746847DEa103C71fb18ED3708",
                "abi": [
                  "constructor(address _feeCollector, uint128 _maxPositionsPerAccount, uint128 _maxCollateralsPerAccount, uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient, uint128 _collateralLiquidateRewardRatioD18, address _rewardDistributorImplementation, address _collateralToken)",
                  "function calculateCollateralLiquidateReward(uint256 notionalValue) view returns (uint256)",
                  "function collateralLiquidateRewardRatioD18() view returns (uint128)",
                  "function collateralToken() view returns (address)",
                  "function collectFees(uint256 orderFees, address referrer, address factory) returns (uint256 referralFees, uint256 feeCollectorFees)",
                  "function feeCollector() view returns (address)",
                  "function getFeeCollector() view returns (address _feeCollector)",
                  "function getInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function getMarkets() view returns (uint256[] marketIds)",
                  "function getPerAccountCaps() view returns (uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "function globalCollateralValue(uint128 collateralId) view returns (uint256 collateralValue)",
                  "function highUtilizationInterestRateGradient() view returns (uint128)",
                  "function initializeFactory(address _marketFactory)",
                  "function interestRateGradientBreakpoint() view returns (uint128)",
                  "function loadInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function lowUtilizationInterestRateGradient() view returns (uint128)",
                  "function marketFactory() view returns (address)",
                  "function maxCollateralsPerAccount() view returns (uint128)",
                  "function maxPositionsPerAccount() view returns (uint128)",
                  "function rewardDistributorImplementation() view returns (address)",
                  "function setFeeCollector(address feeCollector)",
                  "function updateInterestRate()",
                  "event FeeCollectorSet(address feeCollector)",
                  "event InterestRateParametersSet(uint256 lowUtilizationInterestRateGradient, uint256 interestRateGradientBreakpoint, uint256 highUtilizationInterestRateGradient)",
                  "event InterestRateUpdated(uint128 indexed superMarketId, uint128 interestRate)",
                  "event KeeperCostNodeIdUpdated(bytes32 keeperCostNodeId)",
                  "event PerAccountCapsSet(uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "event ReferrerShareUpdated(address referrer, uint256 shareRatioD18)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidInterestRateParameters(uint128 lowUtilizationInterestRateGradient, uint128 highUtilizationInterestRateGradient)",
                  "error InvalidReferrerShareRatio(uint256 shareRatioD18)",
                  "error OverflowUint256ToUint128()",
                  "error Unauthorized(address addr)"
                ],
                "constructorArgs": [
                  "0xa9044db85CdEDc3a5C8621aC5FADe290a414C3A8",
                  100,
                  10,
                  "300000000000000000",
                  "750000000000000000",
                  "10000000000000000",
                  "10000000000000000",
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                  "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xbba16d07f9c6625fcc5358dfc603a5de96165f7ea5940023bc353c0691ac01d1",
                "deployTxnBlockNumber": "8323669",
                "deployTimestamp": "1747208676",
                "sourceName": "src/perps-market/contracts/modules/GlobalPerpsMarketModule.sol",
                "contractName": "GlobalPerpsMarketModule",
                "deployedOn": "contract.GlobalPerpsMarketModule",
                "gasUsed": 1182991,
                "gasCost": "2153877212"
              },
              "PerpsMarketFactoryModule": {
                "address": "0xC1Db4fe8a58c8d262D3Aa8A50EFbc7646a30be26",
                "abi": [
                  "constructor(address _synthetix, address _accountProxyAddress, address _spotMarket, address _oracle, address _usdToken, bytes32 _name, uint128 _perpsMarketId)",
                  "function accountProxy() view returns (address)",
                  "function createMarket(uint128 requestedMarketId, string marketName, string marketSymbol) returns (uint128)",
                  "function depositMarketCollateral(address collateral, uint256 amount)",
                  "function generalName() view returns (bytes32)",
                  "function interestRate() view returns (uint128)",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128 marketId) view returns (string)",
                  "function oracle() view returns (address)",
                  "function perpsMarketId() view returns (uint128)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function spotMarket() view returns (address)",
                  "function synthetix() view returns (address)",
                  "function totalWithdrawableUsd() view returns (uint256)",
                  "function usdToken() view returns (address)",
                  "function utilizationRate() view returns (uint256 rate, uint256 delegatedCollateral, uint256 lockedCredit)",
                  "function withdrawMarketUsd(address to, uint256 amount)",
                  "event FactoryInitialized(uint128 globalPerpsMarketId)",
                  "event MarketCreated(uint128 indexed perpsMarketId, string marketName, string marketSymbol)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PerpsMarketAlreadyInitialized()",
                  "error PerpsMarketNotInitialized()",
                  "error PositionOutOfBounds()",
                  "error Unauthorized(address addr)",
                  "error ValueAlreadyInSet()"
                ],
                "constructorArgs": [
                  "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                  "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                  "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                  "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                  "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                  "0x53757065724d61726b6574000000000000000000000000000000000000000000",
                  "5"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x8afccc18a505f4a8dcfbecc6934c8f759f81430699b4ab50acfe6beda906fd65",
                "deployTxnBlockNumber": "8479096",
                "deployTimestamp": "1749088368",
                "sourceName": "src/perps-market/contracts/modules/PerpsMarketFactoryModule.sol",
                "contractName": "PerpsMarketFactoryModule",
                "deployedOn": "contract.PerpsMarketFactoryModule",
                "gasUsed": 1410809,
                "gasCost": "1002382"
              },
              "GlobalContext": {
                "address": "0x2EE17C4461D01787786D38E33c59880c79D564BA",
                "abi": [
                  "constructor(address _globalMarketConfiguration, address _perpsMarketFactory, uint128[] _marketIds, address[] _perpsMarketConfigs, uint128[] _collateralIds, address[] _perpsCollateralConfigs)",
                  "function collateralConfigs(uint128) view returns (address)",
                  "function globalMarketConfiguration() view returns (address)",
                  "function load(uint128 _marketId) view returns (address)",
                  "function loadCollateral(uint128 _collateralId) view returns (address)",
                  "function marketConfigs(uint128) view returns (address)",
                  "function perpsMarketFactory() view returns (address)"
                ],
                "constructorArgs": [
                  "0xD042EA6c1816536746847DEa103C71fb18ED3708",
                  "0xC1Db4fe8a58c8d262D3Aa8A50EFbc7646a30be26",
                  [
                    100,
                    200
                  ],
                  [
                    "0x6FCD9528d7b958986584919F74C54A7c45A05F73",
                    "0x6FCD9528d7b958986584919F74C54A7c45A05F73"
                  ],
                  [
                    0
                  ],
                  [
                    "0x22383d6965651DF9048413342f4CD87b94205819"
                  ]
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x0696465950ec9cb1122543fb62cb08025ad836be0a6e9b9d70b73969032e1441",
                "deployTxnBlockNumber": "8479097",
                "deployTimestamp": "1749088380",
                "sourceName": "src/perps-market/contracts/config/GlobalContext.sol",
                "contractName": "GlobalContext",
                "deployedOn": "contract.GlobalContext",
                "gasUsed": 260034,
                "gasCost": "1002649"
              },
              "AccountRoleModule": {
                "address": "0x8052Eb1ee2842214743b175BDAaa478876ae519e",
                "abi": [
                  "constructor(address _globalContext)",
                  "function getAccountOwnerV4(uint128 accountId) view returns (address)",
                  "function getAccountPermissionsV4(uint128 accountId) view returns (address[] accountPerms)",
                  "function grantPermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermissionV4(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorizedV4(uint128 accountId, bytes32 permission, address target) view returns (bool)",
                  "function revokePermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "event PermissionGrantedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevokedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "error InvalidPermission(bytes32 permission)",
                  "error Unauthorized(uint128 accountId, bytes32 permission)",
                  "error ZeroAddress()"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x80fc75627f02b85551e83905770d520073befe030b825a68f9bfd10d3d4a8262",
                "deployTxnBlockNumber": "8479100",
                "deployTimestamp": "1749088416",
                "sourceName": "src/perps-market/contracts/modules/AccountRoleModule.sol",
                "contractName": "AccountRoleModule",
                "deployedOn": "contract.AccountRoleModule",
                "gasUsed": 774563,
                "gasCost": "1002022"
              },
              "BookOrderModule": {
                "address": "0x01f67Dce295e4Ee3616654691B17Ef855a902748",
                "abi": [
                  "constructor(address _globalContext, string name, string version)",
                  "function SIGNED_BOOK_ORDER_TYPEHASH() view returns (bytes32)",
                  "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                  "function settleBookOrders(uint128 marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders)",
                  "event AccountCharged(uint128 accountId, int256 amount, uint256 accountDebt)",
                  "event BookOrderSettled(uint128 indexed marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders, uint256 totalCollectedFees)",
                  "event DoneLoop(uint128 accountId)",
                  "event EIP712DomainChanged()",
                  "event InterestCharged(uint128 indexed accountId, uint256 interest)",
                  "event ItsGreater(uint128 accountId, uint128 cmpAccountId)",
                  "event MarketUpdated(uint128 marketId, uint256 price, uint256 size, int256 sizeDelta, int256 currentFundingRate, uint128 interestRate)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed accountId, uint256 fillPrice, int256 pnl, int256 accruedFunding, int128 sizeDelta, int128 newSize, uint256 totalFees, uint256 referralFees, uint256 collectedFees, uint256 settlementReward, bytes32 indexed trackingCode, address settler)",
                  "error AccountLiquidatable(uint128 accountId)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidFillPrice(int128 sizeDelta, uint128 orderPrice, uint256 filledPrice)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidPermission(bytes32 permission)",
                  "error InvalidShortString()",
                  "error NonceAlreadyUsed(uint64 nonce)",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error SizeDeltaIsZero()",
                  "error StringTooLong(string str)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA",
                  "Orderbook",
                  "1"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x09e9b5eeafbf07cd9af466122b424d9c002447d65e55858002b766e0bd4e2fce",
                "deployTxnBlockNumber": "8479101",
                "deployTimestamp": "1749088428",
                "sourceName": "src/perps-market/contracts/modules/BookOrderModule.sol",
                "contractName": "BookOrderModule",
                "deployedOn": "contract.BookOrderModule",
                "gasUsed": 3252933,
                "gasCost": "1002072"
              },
              "CollateralConfigurationModule": {
                "address": "0xAE028644815F797E4b6497e06dDc5029587207B7",
                "abi": [
                  "constructor(address _globalContext)",
                  "function getCollateralConfiguration(uint128 collateralId) view returns (uint256 maxCollateralAmount)",
                  "function getCollateralConfigurationFull(uint128 collateralId) view returns (uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "function getCollateralLiquidateRewardRatio() view returns (uint128 collateralLiquidateRewardRatioD18)",
                  "event CollateralConfigurationSet(uint128 indexed collateralId, uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "event CollateralLiquidateRewardRatioSet(uint128 collateralLiquidateRewardRatioD18)",
                  "event RewardDistributorRegistered(address distributor)"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x446432c6f0767acedac3543b912c01803d6261aeaad27c460a488f13ca6038c5",
                "deployTxnBlockNumber": "8479102",
                "deployTimestamp": "1749088440",
                "sourceName": "src/perps-market/contracts/modules/CollateralConfigurationModule.sol",
                "contractName": "CollateralConfigurationModule",
                "deployedOn": "contract.CollateralConfigurationModule",
                "gasUsed": 318954,
                "gasCost": "1001973"
              },
              "LiquidationModule": {
                "address": "0x8bb726888D1E1EA5f3e32168321CA87C680a9A9F",
                "abi": [
                  "constructor(address _globalContext)",
                  "function canLiquidate(uint128 accountId, uint256[] positionPrices) view returns (bool isEligible)",
                  "function liquidate(uint128 accountId, uint256[] positionPrices, bool isLarge)",
                  "event AccountLiquidationAttempt(uint128 indexed accountId, uint256 reward, bool fullLiquidation)",
                  "event AccountMarginLiquidation(uint128 indexed accountId, uint256 seizedMarginValue, uint256 liquidationReward)",
                  "event MarketUpdated(uint128 marketId, uint256 price, uint256 size, int256 sizeDelta, int256 currentFundingRate, uint128 interestRate)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 amountLiquidated, int128 currentPositionSize)",
                  "error AccountHasOpenPositions(uint128 accountId)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error NoPositionsOpen()",
                  "error NotEligibleForLiquidation(uint128 accountId)",
                  "error NotEligibleForMarginLiquidation(uint128 accountId)",
                  "error OverflowInt128ToUint128()",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x7fc4493e07e4c4c9ecb47cce4bed827175149298e018bf0a60dc44611e724d22",
                "deployTxnBlockNumber": "8479103",
                "deployTimestamp": "1749088452",
                "sourceName": "src/perps-market/contracts/modules/LiquidationModule.sol",
                "contractName": "LiquidationModule",
                "deployedOn": "contract.LiquidationModule",
                "gasUsed": 1642737,
                "gasCost": "1001870"
              },
              "PerpsAccountModule": {
                "address": "0x2385286c401800204BcDD6BF2e5B3eBd71E1440d",
                "abi": [
                  "constructor(address _globalContext)",
                  "function debt(uint128 accountId) view returns (uint256 accountDebt)",
                  "function depositCollateral(uint128 accountId, uint128 collateralId, uint256 amount)",
                  "function getAccountAllCollateralAmounts(uint128 accountId) view returns (uint256[] collateralIds, uint256[] collateralAmounts, uint256 accountDebt)",
                  "function getAccountCollateralIds(uint128 accountId) view returns (uint256[])",
                  "function getAccountFullPositionInfo(uint128 accountId) view returns (tuple(uint128 marketId, int256 size, int256 pnl, int256 accruedFunding, uint256 chargedInterest, uint256 currentPrice, uint256 entryPrice, uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, string marketName, string marketSymbol)[] detailedPositions)",
                  "function getAccountOpenPositions(uint128 accountId) view returns (uint256[])",
                  "function getAvailableMargin(uint128 accountId) view returns (int256 availableMargin)",
                  "function getCollateralAmount(uint128 accountId, uint128 collateralId) view returns (uint256)",
                  "function getOpenPosition(uint128 accountId, uint128 marketId) view returns (int256 totalPnl, int128 positionSize, uint256 owedInterest)",
                  "function getOpenPositionSize(uint128 accountId, uint128 marketId) view returns (int128 positionSize)",
                  "function getRequiredMargins(uint128 accountId) view returns (uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, uint256 maxLiquidationReward)",
                  "function getWithdrawableMargin(uint128 accountId) view returns (int256 withdrawableMargin)",
                  "function modifyCollateral(uint128 accountId, uint128 collateralId, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint256 amount)",
                  "function totalAccountOpenInterest(uint128 accountId) view returns (uint256)",
                  "function totalCollateralValue(uint128 accountId) view returns (uint256 totalValue)",
                  "event CollateralDeposited(uint128 indexed accountId, uint128 indexed collateralId, uint256 amountDeposited, uint256 totalAmount, address indexed sender)",
                  "event CollateralModified(uint128 indexed accountId, uint128 indexed collateralId, int256 amountDelta, address indexed sender)",
                  "event DebtPaid(uint128 indexed accountId, uint256 amount, address indexed sender)",
                  "event InterestRateUpdated(uint128 indexed superMarketId, uint128 interestRate)",
                  "error AccountLiquidatable(uint128 accountId)",
                  "error AccountNotFound(uint128 accountId)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InsufficientCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InsufficientCollateralAvailableForWithdraw(int256 withdrawableMarginUsd, uint256 requestedMarginUsd)",
                  "error InsufficientSynthCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InvalidDistributor(uint128 collateralId)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error MaxCollateralExceeded(uint128 collateralId, uint256 maxAmount, uint256 collateralAmount, uint256 depositAmount)",
                  "error MaxCollateralsPerAccountReached(uint128 maxCollateralsPerAccount)",
                  "error NonexistentDebt(uint128 accountId)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint128ToInt128()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PositionOutOfBounds()",
                  "error SizeDeltaIsZero()",
                  "error SynthNotEnabledForCollateral(uint128 collateralId)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0x0bf7c4c5eef6e9e955334b488d43f4f00ed2f702bf997a497e5c96e715e61c85",
                "deployTxnBlockNumber": "8479104",
                "deployTimestamp": "1749088464",
                "sourceName": "src/perps-market/contracts/modules/PerpsAccountModule.sol",
                "contractName": "PerpsAccountModule",
                "deployedOn": "contract.PerpsAccountModule",
                "gasUsed": 3581531,
                "gasCost": "1001768"
              },
              "PerpsMarketModule": {
                "address": "0xa8127E705C54cD1fd9349cbc428dE4A21116B4c5",
                "abi": [
                  "constructor(address _globalContext)",
                  "function currentFundingRate(uint128 marketId) view returns (int256)",
                  "function fillPrice(uint128 marketId, int128 orderSize, uint256 price) view returns (uint256)",
                  "function getMarketSummary(uint128 marketId) view returns (tuple(uint256 size, uint256 maxOpenInterest, int256 currentFundingRate, uint256 indexPrice) summary)",
                  "function indexPrice(uint128 marketId) view returns (uint256)",
                  "function maxOpenInterest(uint128 marketId) view returns (uint256)",
                  "function metadata(uint128 marketId) view returns (string name, string symbol)",
                  "function size(uint128 marketId) view returns (uint256)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()"
                ],
                "constructorArgs": [
                  "0x2EE17C4461D01787786D38E33c59880c79D564BA"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "0xfe8bb20fc643ff4318460113d7f423f5d44b331eaa35c9c1d3397b11b31076ce",
                "deployTxnBlockNumber": "8479106",
                "deployTimestamp": "1749088488",
                "sourceName": "src/perps-market/contracts/modules/PerpsMarketModule.sol",
                "contractName": "PerpsMarketModule",
                "deployedOn": "contract.PerpsMarketModule",
                "gasUsed": 672886,
                "gasCost": "1001566"
              },
              "PerpsMarketRouter": {
                "address": "0xb04f33e02dda68caf8ddd14928b626616f12ecd6",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "error ZeroAddress()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error Unauthorized(address addr)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function upgradeTo(address newImplementation)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error UpgradeSimulationFailed()",
                  "constructor(address _synthetix, address _accountProxyAddress, address _spotMarket, address _oracle, address _usdToken, bytes32 _name, uint128 _perpsMarketId)",
                  "function accountProxy() view returns (address)",
                  "function createMarket(uint128 requestedMarketId, string marketName, string marketSymbol) returns (uint128)",
                  "function depositMarketCollateral(address collateral, uint256 amount)",
                  "function generalName() view returns (bytes32)",
                  "function interestRate() view returns (uint128)",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128 marketId) view returns (string)",
                  "function oracle() view returns (address)",
                  "function perpsMarketId() view returns (uint128)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function spotMarket() view returns (address)",
                  "function synthetix() view returns (address)",
                  "function totalWithdrawableUsd() view returns (uint256)",
                  "function usdToken() view returns (address)",
                  "function utilizationRate() view returns (uint256 rate, uint256 delegatedCollateral, uint256 lockedCredit)",
                  "function withdrawMarketUsd(address to, uint256 amount)",
                  "event FactoryInitialized(uint128 globalPerpsMarketId)",
                  "event MarketCreated(uint128 indexed perpsMarketId, string marketName, string marketSymbol)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PerpsMarketAlreadyInitialized()",
                  "error PerpsMarketNotInitialized()",
                  "constructor(address _globalContext)",
                  "function debt(uint128 accountId) view returns (uint256 accountDebt)",
                  "function depositCollateral(uint128 accountId, uint128 collateralId, uint256 amount)",
                  "function getAccountAllCollateralAmounts(uint128 accountId) view returns (uint256[] collateralIds, uint256[] collateralAmounts, uint256 accountDebt)",
                  "function getAccountCollateralIds(uint128 accountId) view returns (uint256[])",
                  "function getAccountFullPositionInfo(uint128 accountId) view returns (tuple(uint128 marketId, int256 size, int256 pnl, int256 accruedFunding, uint256 chargedInterest, uint256 currentPrice, uint256 entryPrice, uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, string marketName, string marketSymbol)[] detailedPositions)",
                  "function getAccountOpenPositions(uint128 accountId) view returns (uint256[])",
                  "function getAvailableMargin(uint128 accountId) view returns (int256 availableMargin)",
                  "function getCollateralAmount(uint128 accountId, uint128 collateralId) view returns (uint256)",
                  "function getOpenPosition(uint128 accountId, uint128 marketId) view returns (int256 totalPnl, int128 positionSize, uint256 owedInterest)",
                  "function getOpenPositionSize(uint128 accountId, uint128 marketId) view returns (int128 positionSize)",
                  "function getRequiredMargins(uint128 accountId) view returns (uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, uint256 maxLiquidationReward)",
                  "function getWithdrawableMargin(uint128 accountId) view returns (int256 withdrawableMargin)",
                  "function modifyCollateral(uint128 accountId, uint128 collateralId, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint256 amount)",
                  "function totalAccountOpenInterest(uint128 accountId) view returns (uint256)",
                  "function totalCollateralValue(uint128 accountId) view returns (uint256 totalValue)",
                  "event CollateralDeposited(uint128 indexed accountId, uint128 indexed collateralId, uint256 amountDeposited, uint256 totalAmount, address indexed sender)",
                  "event CollateralModified(uint128 indexed accountId, uint128 indexed collateralId, int256 amountDelta, address indexed sender)",
                  "event DebtPaid(uint128 indexed accountId, uint256 amount, address indexed sender)",
                  "event InterestRateUpdated(uint128 indexed superMarketId, uint128 interestRate)",
                  "error AccountLiquidatable(uint128 accountId)",
                  "error AccountNotFound(uint128 accountId)",
                  "error InsufficientCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InsufficientCollateralAvailableForWithdraw(int256 withdrawableMarginUsd, uint256 requestedMarginUsd)",
                  "error InsufficientSynthCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InvalidDistributor(uint128 collateralId)",
                  "error MaxCollateralExceeded(uint128 collateralId, uint256 maxAmount, uint256 collateralAmount, uint256 depositAmount)",
                  "error MaxCollateralsPerAccountReached(uint128 maxCollateralsPerAccount)",
                  "error NonexistentDebt(uint128 accountId)",
                  "error OverflowUint128ToInt128()",
                  "error SizeDeltaIsZero()",
                  "error SynthNotEnabledForCollateral(uint128 collateralId)",
                  "function getAccountOwnerV4(uint128 accountId) view returns (address)",
                  "function getAccountPermissionsV4(uint128 accountId) view returns (address[] accountPerms)",
                  "function grantPermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermissionV4(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorizedV4(uint128 accountId, bytes32 permission, address target) view returns (bool)",
                  "function revokePermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "event PermissionGrantedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevokedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "error Unauthorized(uint128 accountId, bytes32 permission)",
                  "function currentFundingRate(uint128 marketId) view returns (int256)",
                  "function fillPrice(uint128 marketId, int128 orderSize, uint256 price) view returns (uint256)",
                  "function getMarketSummary(uint128 marketId) view returns (tuple(uint256 size, uint256 maxOpenInterest, int256 currentFundingRate, uint256 indexPrice) summary)",
                  "function indexPrice(uint128 marketId) view returns (uint256)",
                  "function maxOpenInterest(uint128 marketId) view returns (uint256)",
                  "function metadata(uint128 marketId) view returns (string name, string symbol)",
                  "function size(uint128 marketId) view returns (uint256)",
                  "constructor(address _globalContext, string name, string version)",
                  "function SIGNED_BOOK_ORDER_TYPEHASH() view returns (bytes32)",
                  "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                  "function settleBookOrders(uint128 marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders)",
                  "event AccountCharged(uint128 accountId, int256 amount, uint256 accountDebt)",
                  "event BookOrderSettled(uint128 indexed marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders, uint256 totalCollectedFees)",
                  "event DoneLoop(uint128 accountId)",
                  "event EIP712DomainChanged()",
                  "event InterestCharged(uint128 indexed accountId, uint256 interest)",
                  "event ItsGreater(uint128 accountId, uint128 cmpAccountId)",
                  "event MarketUpdated(uint128 marketId, uint256 price, uint256 size, int256 sizeDelta, int256 currentFundingRate, uint128 interestRate)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed accountId, uint256 fillPrice, int256 pnl, int256 accruedFunding, int128 sizeDelta, int128 newSize, uint256 totalFees, uint256 referralFees, uint256 collectedFees, uint256 settlementReward, bytes32 indexed trackingCode, address settler)",
                  "error InvalidFillPrice(int128 sizeDelta, uint128 orderPrice, uint256 filledPrice)",
                  "error InvalidShortString()",
                  "error NonceAlreadyUsed(uint64 nonce)",
                  "error OverflowInt128ToUint128()",
                  "error StringTooLong(string str)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function canLiquidate(uint128 accountId, uint256[] positionPrices) view returns (bool isEligible)",
                  "function liquidate(uint128 accountId, uint256[] positionPrices, bool isLarge)",
                  "event AccountLiquidationAttempt(uint128 indexed accountId, uint256 reward, bool fullLiquidation)",
                  "event AccountMarginLiquidation(uint128 indexed accountId, uint256 seizedMarginValue, uint256 liquidationReward)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 amountLiquidated, int128 currentPositionSize)",
                  "error AccountHasOpenPositions(uint128 accountId)",
                  "error NoPositionsOpen()",
                  "error NotEligibleForLiquidation(uint128 accountId)",
                  "error NotEligibleForMarginLiquidation(uint128 accountId)",
                  "constructor(uint256 _makerFee, uint256 _takerFee, uint256 _maxMarketSize, uint256 _initialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _lockedOiRatioD18, uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _minimumPositionMargin, uint256 _minimumInitialMarginRatioD18, uint256 _maxLiquidationPd, uint256 _maxMarketValue)",
                  "function calculateRequiredMargins(int128 size, uint256 price) view returns (uint256 initialMarginRatio, uint256 maintenanceMarginRatio, uint256 initialMargin, uint256 maintenanceMargin)",
                  "function getLiquidationParameters() view returns (uint256 _initialMarginRatioD18, uint256 _minimumInitialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _minimumPositionMargin)",
                  "function getLockedOiRatio() view returns (uint256 _lockedOiRatioD18)",
                  "function getMaxLiquidationParameters() view returns (uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _maxLiquidationPd)",
                  "function getMaxMarketSize() view returns (uint256 _maxMarketSize)",
                  "function getMaxMarketValue() view returns (uint256 _maxMarketValue)",
                  "function getOrderFees() view returns (uint256 _makerFee, uint256 _takerFee)",
                  "function initialMarginRatioD18() view returns (uint256)",
                  "function lockedOiRatioD18() view returns (uint256)",
                  "function maintenanceMarginScalarD18() view returns (uint256)",
                  "function makerFee() view returns (uint256)",
                  "function maxLiquidationAmountInWindow() view returns (uint256)",
                  "function maxLiquidationLimitAccumulationMultiplier() view returns (uint256)",
                  "function maxLiquidationPd() view returns (uint256)",
                  "function maxMarketSize() view returns (uint256)",
                  "function maxMarketValue() view returns (uint256)",
                  "function maxSecondsInLiquidationWindow() view returns (uint256)",
                  "function minimumInitialMarginRatioD18() view returns (uint256)",
                  "function minimumPositionMargin() view returns (uint256)",
                  "function takerFee() view returns (uint256)",
                  "event LiquidationParametersSet(uint128 indexed marketId, uint256 initialMarginRatioD18, uint256 maintenanceMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 minimumPositionMargin)",
                  "event LockedOiRatioSet(uint128 indexed marketId, uint256 lockedOiRatioD18)",
                  "event MarketPriceDataUpdated(uint128 indexed marketId, bytes32 feedId, uint256 strictStalenessTolerance)",
                  "event MaxLiquidationParametersSet(uint128 indexed marketId, uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd)",
                  "event MaxMarketSizeSet(uint128 indexed marketId, uint256 maxMarketSize)",
                  "event MaxMarketValueSet(uint128 indexed marketId, uint256 maxMarketValue)",
                  "event OrderFeesSet(uint128 indexed marketId, uint256 makerFeeRatio, uint256 takerFeeRatio)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "error MaxOpenInterestReached(uint128 marketId, uint256 maxMarketSize, int256 newSideSize)",
                  "error MaxUSDOpenInterestReached(uint128 marketId, uint256 maxMarketValue, int256 newSideSize, uint256 price)",
                  "function getCollateralConfiguration(uint128 collateralId) view returns (uint256 maxCollateralAmount)",
                  "function getCollateralConfigurationFull(uint128 collateralId) view returns (uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "function getCollateralLiquidateRewardRatio() view returns (uint128 collateralLiquidateRewardRatioD18)",
                  "event CollateralConfigurationSet(uint128 indexed collateralId, uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "event CollateralLiquidateRewardRatioSet(uint128 collateralLiquidateRewardRatioD18)",
                  "event RewardDistributorRegistered(address distributor)",
                  "constructor(address _feeCollector, uint128 _maxPositionsPerAccount, uint128 _maxCollateralsPerAccount, uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient, uint128 _collateralLiquidateRewardRatioD18, address _rewardDistributorImplementation, address _collateralToken)",
                  "function calculateCollateralLiquidateReward(uint256 notionalValue) view returns (uint256)",
                  "function collateralLiquidateRewardRatioD18() view returns (uint128)",
                  "function collateralToken() view returns (address)",
                  "function collectFees(uint256 orderFees, address referrer, address factory) returns (uint256 referralFees, uint256 feeCollectorFees)",
                  "function feeCollector() view returns (address)",
                  "function getFeeCollector() view returns (address _feeCollector)",
                  "function getInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function getMarkets() view returns (uint256[] marketIds)",
                  "function getPerAccountCaps() view returns (uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "function globalCollateralValue(uint128 collateralId) view returns (uint256 collateralValue)",
                  "function highUtilizationInterestRateGradient() view returns (uint128)",
                  "function initializeFactory(address _marketFactory)",
                  "function interestRateGradientBreakpoint() view returns (uint128)",
                  "function loadInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function lowUtilizationInterestRateGradient() view returns (uint128)",
                  "function marketFactory() view returns (address)",
                  "function maxCollateralsPerAccount() view returns (uint128)",
                  "function maxPositionsPerAccount() view returns (uint128)",
                  "function rewardDistributorImplementation() view returns (address)",
                  "function setFeeCollector(address feeCollector)",
                  "function updateInterestRate()",
                  "event FeeCollectorSet(address feeCollector)",
                  "event InterestRateParametersSet(uint256 lowUtilizationInterestRateGradient, uint256 interestRateGradientBreakpoint, uint256 highUtilizationInterestRateGradient)",
                  "event KeeperCostNodeIdUpdated(bytes32 keeperCostNodeId)",
                  "event PerAccountCapsSet(uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "event ReferrerShareUpdated(address referrer, uint256 shareRatioD18)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidInterestRateParameters(uint128 lowUtilizationInterestRateGradient, uint128 highUtilizationInterestRateGradient)",
                  "error InvalidReferrerShareRatio(uint256 shareRatioD18)"
                ],
                "deployedOn": "router.PerpsMarketRouter",
                "deployTxnHash": "0x061f8deee740d2952ab8b8b7e620631cbe2ac1b1ef66c30c7822a2fae1cbc9f1",
                "deployTxnBlockNumber": "8479107",
                "deployTimestamp": "1749088500",
                "contractName": "PerpsMarketRouter",
                "sourceName": "PerpsMarketRouter.sol",
                "gasUsed": 4788687,
                "gasCost": "1001733"
              },
              "PerpsMarketProxy": {
                "address": "0xEa1ef48647E2418b50480724E120C6A0b0fb54c3",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error FeatureUnavailable(bytes32 which)",
                  "error InvalidAccountId(uint128 accountId)",
                  "error InvalidPermission(bytes32 permission)",
                  "error OnlyAccountTokenProxy(address origin)",
                  "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                  "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                  "error PositionOutOfBounds()",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "error ZeroAddress()",
                  "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                  "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "function createAccount() returns (uint128 accountId)",
                  "function createAccount(uint128 requestedAccountId)",
                  "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                  "function getAccountOwner(uint128 accountId) view returns (address)",
                  "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                  "function getAccountTokenAddress() view returns (address)",
                  "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function notifyAccountTransfer(address to, uint128 accountId)",
                  "function renouncePermission(uint128 accountId, bytes32 permission)",
                  "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error MissingAssociatedSystem(bytes32 id)",
                  "error Unauthorized(address addr)",
                  "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                  "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                  "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                  "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                  "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function upgradeTo(address newImplementation)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error UpgradeSimulationFailed()",
                  "constructor(address _synthetix, address _accountProxyAddress, address _spotMarket, address _oracle, address _usdToken, bytes32 _name, uint128 _perpsMarketId)",
                  "function accountProxy() view returns (address)",
                  "function createMarket(uint128 requestedMarketId, string marketName, string marketSymbol) returns (uint128)",
                  "function depositMarketCollateral(address collateral, uint256 amount)",
                  "function generalName() view returns (bytes32)",
                  "function interestRate() view returns (uint128)",
                  "function minimumCredit(uint128 marketId) view returns (uint256)",
                  "function name(uint128 marketId) view returns (string)",
                  "function oracle() view returns (address)",
                  "function perpsMarketId() view returns (uint128)",
                  "function reportedDebt(uint128 marketId) view returns (uint256)",
                  "function spotMarket() view returns (address)",
                  "function synthetix() view returns (address)",
                  "function totalWithdrawableUsd() view returns (uint256)",
                  "function usdToken() view returns (address)",
                  "function utilizationRate() view returns (uint256 rate, uint256 delegatedCollateral, uint256 lockedCredit)",
                  "function withdrawMarketUsd(address to, uint256 amount)",
                  "event FactoryInitialized(uint128 globalPerpsMarketId)",
                  "event MarketCreated(uint128 indexed perpsMarketId, string marketName, string marketSymbol)",
                  "error InvalidMarket(uint128 marketId)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error PerpsMarketAlreadyInitialized()",
                  "error PerpsMarketNotInitialized()",
                  "constructor(address _globalContext)",
                  "function debt(uint128 accountId) view returns (uint256 accountDebt)",
                  "function depositCollateral(uint128 accountId, uint128 collateralId, uint256 amount)",
                  "function getAccountAllCollateralAmounts(uint128 accountId) view returns (uint256[] collateralIds, uint256[] collateralAmounts, uint256 accountDebt)",
                  "function getAccountCollateralIds(uint128 accountId) view returns (uint256[])",
                  "function getAccountFullPositionInfo(uint128 accountId) view returns (tuple(uint128 marketId, int256 size, int256 pnl, int256 accruedFunding, uint256 chargedInterest, uint256 currentPrice, uint256 entryPrice, uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, string marketName, string marketSymbol)[] detailedPositions)",
                  "function getAccountOpenPositions(uint128 accountId) view returns (uint256[])",
                  "function getAvailableMargin(uint128 accountId) view returns (int256 availableMargin)",
                  "function getCollateralAmount(uint128 accountId, uint128 collateralId) view returns (uint256)",
                  "function getOpenPosition(uint128 accountId, uint128 marketId) view returns (int256 totalPnl, int128 positionSize, uint256 owedInterest)",
                  "function getOpenPositionSize(uint128 accountId, uint128 marketId) view returns (int128 positionSize)",
                  "function getRequiredMargins(uint128 accountId) view returns (uint256 requiredInitialMargin, uint256 requiredMaintenanceMargin, uint256 maxLiquidationReward)",
                  "function getWithdrawableMargin(uint128 accountId) view returns (int256 withdrawableMargin)",
                  "function modifyCollateral(uint128 accountId, uint128 collateralId, int256 amountDelta)",
                  "function payDebt(uint128 accountId, uint256 amount)",
                  "function totalAccountOpenInterest(uint128 accountId) view returns (uint256)",
                  "function totalCollateralValue(uint128 accountId) view returns (uint256 totalValue)",
                  "event CollateralDeposited(uint128 indexed accountId, uint128 indexed collateralId, uint256 amountDeposited, uint256 totalAmount, address indexed sender)",
                  "event CollateralModified(uint128 indexed accountId, uint128 indexed collateralId, int256 amountDelta, address indexed sender)",
                  "event DebtPaid(uint128 indexed accountId, uint256 amount, address indexed sender)",
                  "event InterestRateUpdated(uint128 indexed superMarketId, uint128 interestRate)",
                  "error AccountLiquidatable(uint128 accountId)",
                  "error AccountNotFound(uint128 accountId)",
                  "error InsufficientCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InsufficientCollateralAvailableForWithdraw(int256 withdrawableMarginUsd, uint256 requestedMarginUsd)",
                  "error InsufficientSynthCollateral(uint128 collateralId, uint256 collateralAmount, uint256 withdrawAmount)",
                  "error InvalidDistributor(uint128 collateralId)",
                  "error MaxCollateralExceeded(uint128 collateralId, uint256 maxAmount, uint256 collateralAmount, uint256 depositAmount)",
                  "error MaxCollateralsPerAccountReached(uint128 maxCollateralsPerAccount)",
                  "error NonexistentDebt(uint128 accountId)",
                  "error OverflowUint128ToInt128()",
                  "error SizeDeltaIsZero()",
                  "error SynthNotEnabledForCollateral(uint128 collateralId)",
                  "function getAccountOwnerV4(uint128 accountId) view returns (address)",
                  "function getAccountPermissionsV4(uint128 accountId) view returns (address[] accountPerms)",
                  "function grantPermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "function hasPermissionV4(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                  "function isAuthorizedV4(uint128 accountId, bytes32 permission, address target) view returns (bool)",
                  "function revokePermissionV4(uint128 accountId, bytes32 permission, address user)",
                  "event PermissionGrantedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "event PermissionRevokedV4(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                  "error Unauthorized(uint128 accountId, bytes32 permission)",
                  "function currentFundingRate(uint128 marketId) view returns (int256)",
                  "function fillPrice(uint128 marketId, int128 orderSize, uint256 price) view returns (uint256)",
                  "function getMarketSummary(uint128 marketId) view returns (tuple(uint256 size, uint256 maxOpenInterest, int256 currentFundingRate, uint256 indexPrice) summary)",
                  "function indexPrice(uint128 marketId) view returns (uint256)",
                  "function maxOpenInterest(uint128 marketId) view returns (uint256)",
                  "function metadata(uint128 marketId) view returns (string name, string symbol)",
                  "function size(uint128 marketId) view returns (uint256)",
                  "constructor(address _globalContext, string name, string version)",
                  "function SIGNED_BOOK_ORDER_TYPEHASH() view returns (bytes32)",
                  "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                  "function settleBookOrders(uint128 marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders)",
                  "event AccountCharged(uint128 accountId, int256 amount, uint256 accountDebt)",
                  "event BookOrderSettled(uint128 indexed marketId, tuple(tuple(bytes32 symbol, uint128 accountId, int128 sizeDelta, uint128 orderPrice, uint64 expiration, uint64 nonce) signedOrder, uint256 filledPrice, bytes32 trackingCode, bytes signature)[] orders, uint256 totalCollectedFees)",
                  "event DoneLoop(uint128 accountId)",
                  "event EIP712DomainChanged()",
                  "event InterestCharged(uint128 indexed accountId, uint256 interest)",
                  "event ItsGreater(uint128 accountId, uint128 cmpAccountId)",
                  "event MarketUpdated(uint128 marketId, uint256 price, uint256 size, int256 sizeDelta, int256 currentFundingRate, uint128 interestRate)",
                  "event OrderSettled(uint128 indexed marketId, uint128 indexed accountId, uint256 fillPrice, int256 pnl, int256 accruedFunding, int128 sizeDelta, int128 newSize, uint256 totalFees, uint256 referralFees, uint256 collectedFees, uint256 settlementReward, bytes32 indexed trackingCode, address settler)",
                  "error InvalidFillPrice(int128 sizeDelta, uint128 orderPrice, uint256 filledPrice)",
                  "error InvalidShortString()",
                  "error NonceAlreadyUsed(uint64 nonce)",
                  "error OverflowInt128ToUint128()",
                  "error StringTooLong(string str)",
                  "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function getDeniers(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                  "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                  "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                  "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                  "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                  "function setDeniers(bytes32 feature, address[] deniers)",
                  "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                  "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                  "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                  "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                  "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                  "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                  "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                  "function canLiquidate(uint128 accountId, uint256[] positionPrices) view returns (bool isEligible)",
                  "function liquidate(uint128 accountId, uint256[] positionPrices, bool isLarge)",
                  "event AccountLiquidationAttempt(uint128 indexed accountId, uint256 reward, bool fullLiquidation)",
                  "event AccountMarginLiquidation(uint128 indexed accountId, uint256 seizedMarginValue, uint256 liquidationReward)",
                  "event PositionLiquidated(uint128 indexed accountId, uint128 indexed marketId, uint256 amountLiquidated, int128 currentPositionSize)",
                  "error AccountHasOpenPositions(uint128 accountId)",
                  "error NoPositionsOpen()",
                  "error NotEligibleForLiquidation(uint128 accountId)",
                  "error NotEligibleForMarginLiquidation(uint128 accountId)",
                  "constructor(uint256 _makerFee, uint256 _takerFee, uint256 _maxMarketSize, uint256 _initialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _lockedOiRatioD18, uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _minimumPositionMargin, uint256 _minimumInitialMarginRatioD18, uint256 _maxLiquidationPd, uint256 _maxMarketValue)",
                  "function calculateRequiredMargins(int128 size, uint256 price) view returns (uint256 initialMarginRatio, uint256 maintenanceMarginRatio, uint256 initialMargin, uint256 maintenanceMargin)",
                  "function getLiquidationParameters() view returns (uint256 _initialMarginRatioD18, uint256 _minimumInitialMarginRatioD18, uint256 _maintenanceMarginScalarD18, uint256 _minimumPositionMargin)",
                  "function getLockedOiRatio() view returns (uint256 _lockedOiRatioD18)",
                  "function getMaxLiquidationParameters() view returns (uint256 _maxLiquidationLimitAccumulationMultiplier, uint256 _maxSecondsInLiquidationWindow, uint256 _maxLiquidationPd)",
                  "function getMaxMarketSize() view returns (uint256 _maxMarketSize)",
                  "function getMaxMarketValue() view returns (uint256 _maxMarketValue)",
                  "function getOrderFees() view returns (uint256 _makerFee, uint256 _takerFee)",
                  "function initialMarginRatioD18() view returns (uint256)",
                  "function lockedOiRatioD18() view returns (uint256)",
                  "function maintenanceMarginScalarD18() view returns (uint256)",
                  "function makerFee() view returns (uint256)",
                  "function maxLiquidationAmountInWindow() view returns (uint256)",
                  "function maxLiquidationLimitAccumulationMultiplier() view returns (uint256)",
                  "function maxLiquidationPd() view returns (uint256)",
                  "function maxMarketSize() view returns (uint256)",
                  "function maxMarketValue() view returns (uint256)",
                  "function maxSecondsInLiquidationWindow() view returns (uint256)",
                  "function minimumInitialMarginRatioD18() view returns (uint256)",
                  "function minimumPositionMargin() view returns (uint256)",
                  "function takerFee() view returns (uint256)",
                  "event LiquidationParametersSet(uint128 indexed marketId, uint256 initialMarginRatioD18, uint256 maintenanceMarginRatioD18, uint256 minimumInitialMarginRatioD18, uint256 minimumPositionMargin)",
                  "event LockedOiRatioSet(uint128 indexed marketId, uint256 lockedOiRatioD18)",
                  "event MarketPriceDataUpdated(uint128 indexed marketId, bytes32 feedId, uint256 strictStalenessTolerance)",
                  "event MaxLiquidationParametersSet(uint128 indexed marketId, uint256 maxLiquidationLimitAccumulationMultiplier, uint256 maxSecondsInLiquidationWindow, uint256 maxLiquidationPd)",
                  "event MaxMarketSizeSet(uint128 indexed marketId, uint256 maxMarketSize)",
                  "event MaxMarketValueSet(uint128 indexed marketId, uint256 maxMarketValue)",
                  "event OrderFeesSet(uint128 indexed marketId, uint256 makerFeeRatio, uint256 takerFeeRatio)",
                  "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                  "error InvalidSettlementWindowDuration(uint256 duration)",
                  "error MaxOpenInterestReached(uint128 marketId, uint256 maxMarketSize, int256 newSideSize)",
                  "error MaxUSDOpenInterestReached(uint128 marketId, uint256 maxMarketValue, int256 newSideSize, uint256 price)",
                  "function getCollateralConfiguration(uint128 collateralId) view returns (uint256 maxCollateralAmount)",
                  "function getCollateralConfigurationFull(uint128 collateralId) view returns (uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "function getCollateralLiquidateRewardRatio() view returns (uint128 collateralLiquidateRewardRatioD18)",
                  "event CollateralConfigurationSet(uint128 indexed collateralId, uint256 maxCollateralAmount, uint256 upperLimitDiscount, uint256 lowerLimitDiscount, uint256 discountScalar)",
                  "event CollateralLiquidateRewardRatioSet(uint128 collateralLiquidateRewardRatioD18)",
                  "event RewardDistributorRegistered(address distributor)",
                  "constructor(address _feeCollector, uint128 _maxPositionsPerAccount, uint128 _maxCollateralsPerAccount, uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient, uint128 _collateralLiquidateRewardRatioD18, address _rewardDistributorImplementation, address _collateralToken)",
                  "function calculateCollateralLiquidateReward(uint256 notionalValue) view returns (uint256)",
                  "function collateralLiquidateRewardRatioD18() view returns (uint128)",
                  "function collateralToken() view returns (address)",
                  "function collectFees(uint256 orderFees, address referrer, address factory) returns (uint256 referralFees, uint256 feeCollectorFees)",
                  "function feeCollector() view returns (address)",
                  "function getFeeCollector() view returns (address _feeCollector)",
                  "function getInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function getMarkets() view returns (uint256[] marketIds)",
                  "function getPerAccountCaps() view returns (uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "function globalCollateralValue(uint128 collateralId) view returns (uint256 collateralValue)",
                  "function highUtilizationInterestRateGradient() view returns (uint128)",
                  "function initializeFactory(address _marketFactory)",
                  "function interestRateGradientBreakpoint() view returns (uint128)",
                  "function loadInterestRateParameters() view returns (uint128 _lowUtilizationInterestRateGradient, uint128 _interestRateGradientBreakpoint, uint128 _highUtilizationInterestRateGradient)",
                  "function lowUtilizationInterestRateGradient() view returns (uint128)",
                  "function marketFactory() view returns (address)",
                  "function maxCollateralsPerAccount() view returns (uint128)",
                  "function maxPositionsPerAccount() view returns (uint128)",
                  "function rewardDistributorImplementation() view returns (address)",
                  "function setFeeCollector(address feeCollector)",
                  "function updateInterestRate()",
                  "event FeeCollectorSet(address feeCollector)",
                  "event InterestRateParametersSet(uint256 lowUtilizationInterestRateGradient, uint256 interestRateGradientBreakpoint, uint256 highUtilizationInterestRateGradient)",
                  "event KeeperCostNodeIdUpdated(bytes32 keeperCostNodeId)",
                  "event PerAccountCapsSet(uint128 maxPositionsPerAccount, uint128 maxCollateralsPerAccount)",
                  "event ReferrerShareUpdated(address referrer, uint256 shareRatioD18)",
                  "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                  "error InvalidInterestRateParameters(uint128 lowUtilizationInterestRateGradient, uint128 highUtilizationInterestRateGradient)",
                  "error InvalidReferrerShareRatio(uint256 shareRatioD18)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.CoreModule.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "src/perps-market/contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "PerpsAccountProxy": {
                "address": "0x6736A2D950F955E7aC70C7Bd20dEA773664b0BE4",
                "abi": [
                  "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                  "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                  "function facetAddresses() pure returns (address[] addresses)",
                  "function facetAddress(bytes4 functionSelector) pure returns (address)",
                  "function emitDiamondCutEvent() returns (bool)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function upgradeTo(address newImplementation)",
                  "error AlreadyInitialized()",
                  "error CannotSelfApprove(address addr)",
                  "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                  "error InvalidOwner(address addr)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidTransferRecipient(address addr)",
                  "error OverflowUint256ToUint128()",
                  "error TokenAlreadyMinted(uint256 id)",
                  "error TokenDoesNotExist(uint256 id)",
                  "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                  "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                  "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                  "function approve(address to, uint256 tokenId)",
                  "function balanceOf(address holder) view returns (uint256 balance)",
                  "function burn(uint256 tokenId)",
                  "function getApproved(uint256 tokenId) view returns (address operator)",
                  "function initialize(string tokenName, string tokenSymbol, string uri)",
                  "function isApprovedForAll(address holder, address operator) view returns (bool)",
                  "function isInitialized() view returns (bool)",
                  "function mint(address to, uint256 tokenId)",
                  "function name() view returns (string)",
                  "function ownerOf(uint256 tokenId) view returns (address)",
                  "function safeMint(address to, uint256 tokenId, bytes data)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId)",
                  "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                  "function setAllowance(uint256 tokenId, address spender)",
                  "function setApprovalForAll(address operator, bool approved)",
                  "function setBaseTokenURI(string uri)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function symbol() view returns (string)",
                  "function tokenByIndex(uint256 index) view returns (uint256)",
                  "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                  "function tokenURI(uint256 tokenId) view returns (string)",
                  "function totalSupply() view returns (uint256)",
                  "function transferFrom(address from, address to, uint256 tokenId)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.init_account",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "coreProxyOwner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "spotMarketPackage": "synthetix-spot-market:latest",
              "spotMarketPreset": "main",
              "synthetixPackage": "synthetix:latest",
              "synthetixPreset": "main",
              "superMarketId": "5"
            },
            "imports": {
              "spotMarket": {
                "url": "ipfs://QmasaRCA1Dkp8HpSqukPGSbfH9WPepf9sAxrivNKoLbc74",
                "contracts": {
                  "AsyncOrderConfigurationModule": {
                    "address": "0xd9E3049e9B31d08708c061B5Dd7b7A3f8E9Ca2f2",
                    "abi": [
                      "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                      "error InvalidSettlementWindowDuration(uint256 duration)",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                      "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                      "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                      "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x469997b2f1af1eea54049568c53a5adff7d45e7969bcb73f742121d872480340",
                    "deployTxnBlockNumber": "8374781",
                    "deployTimestamp": "1747828668",
                    "sourceName": "contracts/modules/AsyncOrderConfigurationModule.sol",
                    "contractName": "AsyncOrderConfigurationModule",
                    "deployedOn": "contract.AsyncOrderConfigurationModule",
                    "gasUsed": 896430,
                    "gasCost": "653912843"
                  },
                  "AsyncOrderModule": {
                    "address": "0x208b65b1520F1B7356f3f752C637d56CeE268815",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                      "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                      "error InvalidAsyncTransactionType(uint8 transactionType)",
                      "error InvalidClaim(uint256 asyncOrderId)",
                      "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                      "error InvalidMarket(uint128 marketId)",
                      "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                      "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                      "error OverflowInt256ToUint256()",
                      "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                      "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                      "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                      "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                      "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x9b2dc16c231b2f5e06f39104f7e5240048b1fd3b87a172393ca2c04e63dc4763",
                    "deployTxnBlockNumber": "8374782",
                    "deployTimestamp": "1747828680",
                    "sourceName": "contracts/modules/AsyncOrderModule.sol",
                    "contractName": "AsyncOrderModule",
                    "deployedOn": "contract.AsyncOrderModule",
                    "gasUsed": 1395455,
                    "gasCost": "658278909"
                  },
                  "AsyncOrderSettlementModule": {
                    "address": "0x9aC0A92aFdEc87BC08B0D31B3f200A5FE5D13A8f",
                    "abi": [
                      "error InvalidClaim(uint256 asyncOrderId)",
                      "error InvalidSettlementStrategy(uint8 strategyType)",
                      "error InvalidVerificationResponse()",
                      "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                      "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                      "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint64()",
                      "error SettlementStrategyNotFound(uint8 strategyType)",
                      "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                      "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x2aac05e29796c74246b9138899bdbc7a41c70eb0d1bfb10a574631cc2ceaf22c",
                    "deployTxnBlockNumber": "8374783",
                    "deployTimestamp": "1747828692",
                    "sourceName": "contracts/modules/AsyncOrderSettlementModule.sol",
                    "contractName": "AsyncOrderSettlementModule",
                    "deployedOn": "contract.AsyncOrderSettlementModule",
                    "gasUsed": 1981826,
                    "gasCost": "626075294"
                  },
                  "AtomicOrderModule": {
                    "address": "0xdBc86c71044DD010BA6722a8E46131A2d6046b94",
                    "abi": [
                      "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                      "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                      "error InvalidMarket(uint128 marketId)",
                      "error InvalidPrices()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                      "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x0817dbd04fdae29094316abd97c970d4fa0509dbf0200f2f09d2a9f6b98d8510",
                    "deployTxnBlockNumber": "8374784",
                    "deployTimestamp": "1747828704",
                    "sourceName": "contracts/modules/AtomicOrderModule.sol",
                    "contractName": "AtomicOrderModule",
                    "deployedOn": "contract.AtomicOrderModule",
                    "gasUsed": 2345976,
                    "gasCost": "637234151"
                  },
                  "CoreModule": {
                    "address": "0xf7b6f25ED860125a315d642BAF925eACB001A0FC",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe32c55d4c380474f6ab8b84db8653d5e1d3adc1cffd0e7e7038c6019fe2608da",
                    "sourceName": "contracts/modules/CoreModule.sol",
                    "contractName": "CoreModule",
                    "deployedOn": "contract.CoreModule",
                    "gasUsed": 940287,
                    "gasCost": "1062045394"
                  },
                  "FeatureFlagModule": {
                    "address": "0x1258bB2eD01d738944F1d4F5F8aC53dfc7F6D2c7",
                    "abi": [
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x5d9c3deb8b674c8358bd4a67f4992d9537024e1096133622408ec1a8bc197758",
                    "deployTxnBlockNumber": "8374785",
                    "deployTimestamp": "1747828716",
                    "sourceName": "contracts/modules/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 765166,
                    "gasCost": "613995746"
                  },
                  "MarketConfigurationModule": {
                    "address": "0x0441630beCbD73d92D15917D150cBD7d488ec935",
                    "abi": [
                      "error InvalidCollateralLeverage(uint256)",
                      "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                      "error InvalidWrapperFees()",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                      "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                      "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                      "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                      "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                      "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                      "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                      "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                      "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                      "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                      "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                      "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                      "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                      "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                      "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                      "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                      "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                      "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                      "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                      "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                      "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x7b96e81487b509d987db112d46e329f165ca6d2d8e93b0ed11b3408013ea3b06",
                    "deployTxnBlockNumber": "8374786",
                    "deployTimestamp": "1747828728",
                    "sourceName": "contracts/modules/MarketConfigurationModule.sol",
                    "contractName": "MarketConfigurationModule",
                    "deployedOn": "contract.MarketConfigurationModule",
                    "gasUsed": 720683,
                    "gasCost": "628539006"
                  },
                  "SpotMarketFactoryModule": {
                    "address": "0xBA9734649d01099eCc41C9da064781440Fd48419",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidMarketOwner()",
                      "error InvalidSynthImplementation(uint256 synthImplementation)",
                      "error InvalidTransactionTypeIndex(uint128 txnType)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error NotNominated(address addr)",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "error OverflowInt256ToUint256()",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                      "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                      "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                      "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                      "event SynthImplementationSet(address synthImplementation)",
                      "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                      "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                      "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                      "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                      "function acceptMarketOwnership(uint128 synthMarketId)",
                      "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function getSynth(uint128 marketId) view returns (address synthAddress)",
                      "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                      "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                      "function name(uint128 marketId) view returns (string marketName)",
                      "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "function renounceMarketNomination(uint128 synthMarketId)",
                      "function renounceMarketOwnership(uint128 synthMarketId)",
                      "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                      "function setDecayRate(uint128 marketId, uint256 rate)",
                      "function setSynthImplementation(address synthImplementation)",
                      "function setSynthetix(address synthetix)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                      "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function upgradeSynthImpl(uint128 marketId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x54f62a76438c6992fbb4f7ff6892d2487737de2d412e5fa04b746a09de84c970",
                    "deployTxnBlockNumber": "8374787",
                    "deployTimestamp": "1747828740",
                    "sourceName": "contracts/modules/SpotMarketFactoryModule.sol",
                    "contractName": "SpotMarketFactoryModule",
                    "deployedOn": "contract.SpotMarketFactoryModule",
                    "gasUsed": 2347962,
                    "gasCost": "609576525"
                  },
                  "SynthTokenModule": {
                    "address": "0x086B525020ed0b4487a8ed4a91f20dC69a2e4f32",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidDecayRate()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error Unauthorized(address addr)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function advanceEpoch() returns (uint256)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address user) view returns (uint256)",
                      "function burn(address from, uint256 amount)",
                      "function decayRate() view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function setDecayRate(uint256 _rate)",
                      "function symbol() view returns (string)",
                      "function totalShares() view returns (uint256)",
                      "function totalSupply() view returns (uint256 supply)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x1f5533b3098778f5c1b514bdb5602f41915a1cb2d5d3ee17dd569fb7bfbe8596",
                    "deployTxnBlockNumber": "8374788",
                    "deployTimestamp": "1747828752",
                    "sourceName": "contracts/modules/token/SynthTokenModule.sol",
                    "contractName": "SynthTokenModule",
                    "deployedOn": "contract.SynthTokenModule",
                    "gasUsed": 1207447,
                    "gasCost": "609228985"
                  },
                  "WrapperModule": {
                    "address": "0x9FD3411B3592C3441A0C9E1Ee2dd222dF87F6E44",
                    "abi": [
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                      "error InvalidCollateralType(address configuredCollateralType)",
                      "error InvalidMarket(uint128 marketId)",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                      "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                      "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x828460129323be46015329c388b7e716131f9805c2f0735153dd86e3a9e06422",
                    "deployTxnBlockNumber": "8374789",
                    "deployTimestamp": "1747828764",
                    "sourceName": "contracts/modules/WrapperModule.sol",
                    "contractName": "WrapperModule",
                    "deployedOn": "contract.WrapperModule",
                    "gasUsed": 1892668,
                    "gasCost": "614094478"
                  },
                  "InitialSpotMarketProxy": {
                    "address": "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0xf7b6f25ED860125a315d642BAF925eACB001A0FC",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xbd25f6af1a949a6aa6e70bd0529608ebb5d1f48d57a2eef3aa52c036b2c7eac7",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialSpotMarketProxy",
                    "gasUsed": 248149,
                    "gasCost": "996572681"
                  },
                  "SpotMarketRouter": {
                    "address": "0x49232bd36374bd5e129dd2e91da18a81dc87832d",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidMarketOwner()",
                      "error InvalidSynthImplementation(uint256 synthImplementation)",
                      "error InvalidTransactionTypeIndex(uint128 txnType)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "error OverflowInt256ToUint256()",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                      "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                      "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                      "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                      "event SynthImplementationSet(address synthImplementation)",
                      "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                      "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                      "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                      "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                      "function acceptMarketOwnership(uint128 synthMarketId)",
                      "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function getSynth(uint128 marketId) view returns (address synthAddress)",
                      "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                      "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                      "function name(uint128 marketId) view returns (string marketName)",
                      "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "function renounceMarketNomination(uint128 synthMarketId)",
                      "function renounceMarketOwnership(uint128 synthMarketId)",
                      "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                      "function setDecayRate(uint128 marketId, uint256 rate)",
                      "function setSynthImplementation(address synthImplementation)",
                      "function setSynthetix(address synthetix)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                      "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function upgradeSynthImpl(uint128 marketId)",
                      "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                      "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                      "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                      "error InvalidMarket(uint128 marketId)",
                      "error InvalidPrices()",
                      "error OverflowUint256ToInt256()",
                      "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                      "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                      "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                      "error InvalidAsyncTransactionType(uint8 transactionType)",
                      "error InvalidClaim(uint256 asyncOrderId)",
                      "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                      "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                      "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                      "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                      "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                      "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                      "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                      "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                      "error InvalidSettlementStrategy(uint8 strategyType)",
                      "error InvalidVerificationResponse()",
                      "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                      "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                      "error OverflowUint256ToUint64()",
                      "error SettlementStrategyNotFound(uint8 strategyType)",
                      "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                      "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error InvalidSettlementWindowDuration(uint256 duration)",
                      "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                      "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                      "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                      "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InvalidCollateralType(address configuredCollateralType)",
                      "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                      "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                      "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error InvalidCollateralLeverage(uint256)",
                      "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                      "error InvalidWrapperFees()",
                      "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                      "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                      "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                      "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                      "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                      "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                      "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                      "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                      "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                      "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                      "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                      "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                      "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                      "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                      "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                      "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                      "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                      "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                      "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                      "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                      "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "deployedOn": "router.SpotMarketRouter",
                    "deployTxnHash": "0x97ca893dc905e4f249fd9ffc72b18beccd572520d54d9ec88ecfd70a73836132",
                    "deployTxnBlockNumber": "8374790",
                    "deployTimestamp": "1747828776",
                    "contractName": "SpotMarketRouter",
                    "sourceName": "SpotMarketRouter.sol",
                    "gasUsed": 3599996,
                    "gasCost": "601691546"
                  },
                  "SynthRouter": {
                    "address": "0x3bf31896b2cc5e18af9bb81cd007a1ce8613418c",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidDecayRate()",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function advanceEpoch() returns (uint256)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address user) view returns (uint256)",
                      "function burn(address from, uint256 amount)",
                      "function decayRate() view returns (uint256)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function setDecayRate(uint256 _rate)",
                      "function symbol() view returns (string)",
                      "function totalShares() view returns (uint256)",
                      "function totalSupply() view returns (uint256 supply)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployedOn": "router.SynthRouter",
                    "deployTxnHash": "0xbc97bcadad9b7556e903c7965fabe8aa442787d0a84e9254fb4bb8a3638045b0",
                    "deployTxnBlockNumber": "8374791",
                    "deployTimestamp": "1747828788",
                    "contractName": "SynthRouter",
                    "sourceName": "SynthRouter.sol",
                    "gasUsed": 1930195,
                    "gasCost": "588839251"
                  },
                  "SpotMarketProxy": {
                    "address": "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidMarketOwner()",
                      "error InvalidSynthImplementation(uint256 synthImplementation)",
                      "error InvalidTransactionTypeIndex(uint128 txnType)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error OnlyMarketOwner(address marketOwner, address sender)",
                      "error OverflowInt256ToUint256()",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "event DecayRateUpdated(uint128 indexed marketId, uint256 rate)",
                      "event MarketNominationRenounced(uint128 indexed marketId, address nominee)",
                      "event MarketOwnerChanged(uint128 indexed marketId, address oldOwner, address newOwner)",
                      "event MarketOwnerNominated(uint128 indexed marketId, address newOwner)",
                      "event SynthImplementationSet(address synthImplementation)",
                      "event SynthImplementationUpgraded(uint256 indexed synthMarketId, address indexed proxy, address implementation)",
                      "event SynthPriceDataUpdated(uint256 indexed synthMarketId, bytes32 indexed buyFeedId, bytes32 indexed sellFeedId, uint256 strictStalenessTolerance)",
                      "event SynthRegistered(uint256 indexed synthMarketId, address synthTokenAddress)",
                      "event SynthetixSystemSet(address synthetix, address usdTokenAddress, address oracleManager)",
                      "function acceptMarketOwnership(uint128 synthMarketId)",
                      "function createSynth(string tokenName, string tokenSymbol, address synthOwner) returns (uint128 synthMarketId)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function getMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getNominatedMarketOwner(uint128 synthMarketId) view returns (address marketOwner)",
                      "function getPriceData(uint128 synthMarketId) view returns (bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function getSynth(uint128 marketId) view returns (address synthAddress)",
                      "function getSynthImpl(uint128 marketId) view returns (address implAddress)",
                      "function indexPrice(uint128 marketId, uint128 transactionType, uint8 priceTolerance) view returns (uint256 price)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function minimumCredit(uint128 marketId) view returns (uint256 lockedAmount)",
                      "function name(uint128 marketId) view returns (string marketName)",
                      "function nominateMarketOwner(uint128 synthMarketId, address newNominatedOwner)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "function renounceMarketNomination(uint128 synthMarketId)",
                      "function renounceMarketOwnership(uint128 synthMarketId)",
                      "function reportedDebt(uint128 marketId) view returns (uint256 reportedDebtAmount)",
                      "function setDecayRate(uint128 marketId, uint256 rate)",
                      "function setSynthImplementation(address synthImplementation)",
                      "function setSynthetix(address synthetix)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool isSupported)",
                      "function updatePriceData(uint128 synthMarketId, bytes32 buyFeedId, bytes32 sellFeedId, uint256 strictPriceStalenessTolerance)",
                      "function upgradeSynthImpl(uint128 marketId)",
                      "error ExceedsMaxSynthAmount(uint256 maxSynthAmount, uint256 synthAmountCharged)",
                      "error ExceedsMaxUsdAmount(uint256 maxUsdAmount, uint256 usdAmountCharged)",
                      "error InsufficientAmountReceived(uint256 expected, uint256 current)",
                      "error InvalidMarket(uint128 marketId)",
                      "error InvalidPrices()",
                      "error OverflowUint256ToInt256()",
                      "event SynthBought(uint256 indexed synthMarketId, uint256 synthReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "event SynthSold(uint256 indexed synthMarketId, uint256 amountReturned, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address referrer, uint256 price)",
                      "function buy(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactIn(uint128 marketId, uint256 usdAmount, uint256 minAmountReceived, address referrer) returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function buyExactOut(uint128 marketId, uint256 synthAmount, uint256 maxUsdAmount, address referrer) returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function getMarketSkew(uint128 marketId) view returns (int256 marketSkew)",
                      "function quoteBuyExactIn(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteBuyExactOut(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 usdAmountCharged, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactIn(uint128 marketId, uint256 synthAmount, uint8 stalenessTolerance) view returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function quoteSellExactOut(uint128 marketId, uint256 usdAmount, uint8 stalenessTolerance) view returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sell(uint128 marketId, uint256 synthAmount, uint256 minUsdAmount, address referrer) returns (uint256 usdAmountReceived, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactIn(uint128 marketId, uint256 synthAmount, uint256 minAmountReceived, address referrer) returns (uint256 returnAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function sellExactOut(uint128 marketId, uint256 usdAmount, uint256 maxSynthAmount, address referrer) returns (uint256 synthToBurn, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error IneligibleForCancellation(uint256 timestamp, uint256 expirationTime)",
                      "error InsufficientSharesAmount(uint256 expected, uint256 actual)",
                      "error InvalidAsyncTransactionType(uint8 transactionType)",
                      "error InvalidClaim(uint256 asyncOrderId)",
                      "error InvalidCommitmentAmount(uint256 minimumAmount, uint256 amount)",
                      "error InvalidSettlementStrategy(uint256 settlementStrategyId)",
                      "error OrderAlreadySettled(uint256 asyncOrderId, uint256 settledAt)",
                      "event OrderCancelled(uint128 indexed marketId, uint128 indexed asyncOrderId, tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim, address indexed sender)",
                      "event OrderCommitted(uint128 indexed marketId, uint8 indexed orderType, uint256 amountProvided, uint128 asyncOrderId, address indexed sender, address referrer)",
                      "function cancelOrder(uint128 marketId, uint128 asyncOrderId)",
                      "function commitOrder(uint128 marketId, uint8 orderType, uint256 amountProvided, uint256 settlementStrategyId, uint256 minimumSettlementAmount, address referrer) returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                      "function getAsyncOrderClaim(uint128 marketId, uint128 asyncOrderId) pure returns (tuple(uint128 id, address owner, uint8 orderType, uint256 amountEscrowed, uint256 settlementStrategyId, uint256 commitmentTime, uint256 minimumSettlementAmount, uint256 settledAt, address referrer) asyncOrderClaim)",
                      "error InvalidSettlementStrategy(uint8 strategyType)",
                      "error InvalidVerificationResponse()",
                      "error MinimumSettlementAmountNotMet(uint256 minimum, uint256 actual)",
                      "error OutsideSettlementWindow(uint256 timestamp, uint256 startTime, uint256 expirationTime)",
                      "error OverflowUint256ToUint64()",
                      "error SettlementStrategyNotFound(uint8 strategyType)",
                      "event OrderSettled(uint128 indexed marketId, uint128 indexed asyncOrderId, uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 collectedFees, address indexed settler, uint256 price, uint8 orderType)",
                      "function settleOrder(uint128 marketId, uint128 asyncOrderId) returns (uint256 finalOrderAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error InvalidSettlementWindowDuration(uint256 duration)",
                      "event SettlementStrategyAdded(uint128 indexed synthMarketId, uint256 indexed strategyId)",
                      "event SettlementStrategySet(uint128 indexed synthMarketId, uint256 indexed strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function addSettlementStrategy(uint128 marketId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy) returns (uint256 strategyId)",
                      "function getSettlementStrategy(uint128 marketId, uint256 strategyId) view returns (tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) settlementStrategy)",
                      "function setSettlementStrategy(uint128 marketId, uint256 strategyId, tuple(uint8 strategyType, uint256 settlementDelay, uint256 settlementWindowDuration, address priceVerificationContract, bytes32 feedId, string url, uint256 settlementReward, uint256 priceDeviationTolerance, uint256 minimumUsdExchangeAmount, uint256 maxRoundingLoss, bool disabled) strategy)",
                      "function setSettlementStrategyEnabled(uint128 marketId, uint256 strategyId, bool enabled)",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InvalidCollateralType(address configuredCollateralType)",
                      "error WrapperExceedsMaxAmount(uint256 maxWrappableAmount, uint256 currentSupply, uint256 amountToWrap)",
                      "event SynthUnwrapped(uint256 indexed synthMarketId, uint256 amountUnwrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event SynthWrapped(uint256 indexed synthMarketId, uint256 amountWrapped, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees, uint256 feesCollected)",
                      "event WrapperSet(uint256 indexed synthMarketId, address indexed wrapCollateralType, uint256 maxWrappableAmount)",
                      "function getWrapper(uint128 marketId) view returns (address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function setWrapper(uint128 marketId, address wrapCollateralType, uint256 maxWrappableAmount)",
                      "function unwrap(uint128 marketId, uint256 unwrapAmount, uint256 minAmountReceived) returns (uint256 returnCollateralAmount, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "function wrap(uint128 marketId, uint256 wrapAmount, uint256 minAmountReceived) returns (uint256 amountToMint, tuple(uint256 fixedFees, uint256 utilizationFees, int256 skewFees, int256 wrapperFees) fees)",
                      "error InvalidCollateralLeverage(uint256)",
                      "error InvalidFeeCollectorInterface(address invalidFeeCollector)",
                      "error InvalidWrapperFees()",
                      "event AsyncFixedFeeSet(uint256 indexed synthMarketId, uint256 asyncFixedFee)",
                      "event AtomicFixedFeeSet(uint256 indexed synthMarketId, uint256 atomicFixedFee)",
                      "event CollateralLeverageSet(uint256 indexed synthMarketId, uint256 collateralLeverage)",
                      "event FeeCollectorSet(uint256 indexed synthMarketId, address feeCollector)",
                      "event MarketSkewScaleSet(uint256 indexed synthMarketId, uint256 skewScale)",
                      "event MarketUtilizationFeesSet(uint256 indexed synthMarketId, uint256 utilizationFeeRate)",
                      "event ReferrerShareUpdated(uint128 indexed marketId, address referrer, uint256 sharePercentage)",
                      "event TransactorFixedFeeSet(uint256 indexed synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "event WrapperFeesSet(uint256 indexed synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function getCollateralLeverage(uint128 synthMarketId) view returns (uint256 collateralLeverage)",
                      "function getCustomTransactorFees(uint128 synthMarketId, address transactor) view returns (uint256 fixedFeeAmount)",
                      "function getFeeCollector(uint128 synthMarketId) view returns (address feeCollector)",
                      "function getMarketFees(uint128 synthMarketId) view returns (uint256 atomicFixedFee, uint256 asyncFixedFee, int256 wrapFee, int256 unwrapFee)",
                      "function getMarketSkewScale(uint128 synthMarketId) view returns (uint256 skewScale)",
                      "function getMarketUtilizationFees(uint128 synthMarketId) view returns (uint256 utilizationFeeRate)",
                      "function getReferrerShare(uint128 synthMarketId, address referrer) view returns (uint256 sharePercentage)",
                      "function setAsyncFixedFee(uint128 synthMarketId, uint256 asyncFixedFee)",
                      "function setAtomicFixedFee(uint128 synthMarketId, uint256 atomicFixedFee)",
                      "function setCollateralLeverage(uint128 synthMarketId, uint256 collateralLeverage)",
                      "function setCustomTransactorFees(uint128 synthMarketId, address transactor, uint256 fixedFeeAmount)",
                      "function setFeeCollector(uint128 synthMarketId, address feeCollector)",
                      "function setMarketSkewScale(uint128 synthMarketId, uint256 skewScale)",
                      "function setMarketUtilizationFees(uint128 synthMarketId, uint256 utilizationFeeRate)",
                      "function setWrapperFees(uint128 synthMarketId, int256 wrapFee, int256 unwrapFee)",
                      "function updateReferrerShare(uint128 synthMarketId, address referrer, uint256 sharePercentage)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "constructorArgs": [
                      "<%= contracts.CoreModule.address %>",
                      "<%= settings.owner %>"
                    ],
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgradeSpotMarketProxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "settings": {
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "snax",
                  "synthetixPackage": "synthetix",
                  "synthetixPreset": "main"
                },
                "imports": {
                  "synthetix": {
                    "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
                    "contracts": {
                      "AccountModule": {
                        "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                        "abi": [
                          "error FeatureUnavailable(bytes32 which)",
                          "error InvalidAccountId(uint128 accountId)",
                          "error InvalidPermission(bytes32 permission)",
                          "error OnlyAccountTokenProxy(address origin)",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                          "error PositionOutOfBounds()",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "error ZeroAddress()",
                          "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                          "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "function createAccount() returns (uint128 accountId)",
                          "function createAccount(uint128 requestedAccountId)",
                          "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                          "function getAccountOwner(uint128 accountId) view returns (address)",
                          "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                          "function getAccountTokenAddress() view returns (address)",
                          "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                          "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function notifyAccountTransfer(address to, uint128 accountId)",
                          "function renouncePermission(uint128 accountId, bytes32 permission)",
                          "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                        "deployTxnBlockNumber": "8374751",
                        "deployTimestamp": "1747828308",
                        "sourceName": "contracts/modules/core/AccountModule.sol",
                        "contractName": "AccountModule",
                        "deployedOn": "contract.AccountModule",
                        "gasUsed": 1225797,
                        "gasCost": "840868922"
                      },
                      "AccountTokenModule": {
                        "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                        "abi": [
                          "error AlreadyInitialized()",
                          "error CannotSelfApprove(address addr)",
                          "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                          "error InvalidOwner(address addr)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidTransferRecipient(address addr)",
                          "error OverflowUint256ToUint128()",
                          "error TokenAlreadyMinted(uint256 id)",
                          "error TokenDoesNotExist(uint256 id)",
                          "error Unauthorized(address addr)",
                          "error ZeroAddress()",
                          "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                          "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                          "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                          "function approve(address to, uint256 tokenId)",
                          "function balanceOf(address holder) view returns (uint256 balance)",
                          "function burn(uint256 tokenId)",
                          "function getApproved(uint256 tokenId) view returns (address operator)",
                          "function initialize(string tokenName, string tokenSymbol, string uri)",
                          "function isApprovedForAll(address holder, address operator) view returns (bool)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address to, uint256 tokenId)",
                          "function name() view returns (string)",
                          "function ownerOf(uint256 tokenId) view returns (address)",
                          "function safeMint(address to, uint256 tokenId, bytes data)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                          "function setAllowance(uint256 tokenId, address spender)",
                          "function setApprovalForAll(address operator, bool approved)",
                          "function setBaseTokenURI(string uri)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                          "function symbol() view returns (string)",
                          "function tokenByIndex(uint256 index) view returns (uint256)",
                          "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                          "function tokenURI(uint256 tokenId) view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transferFrom(address from, address to, uint256 tokenId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                        "deployTxnBlockNumber": "6660715",
                        "deployTimestamp": "1725880512",
                        "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                        "contractName": "AccountTokenModule",
                        "deployedOn": "contract.AccountTokenModule",
                        "gasUsed": 1787668,
                        "gasCost": "49074705690"
                      },
                      "AssociateDebtModule": {
                        "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                        "abi": [
                          "error AccountNotFound(uint128 accountId)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                          "error MarketNotFound(uint128 marketId)",
                          "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error Unauthorized(address addr)",
                          "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                          "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                        "deployTxnBlockNumber": "8374752",
                        "deployTimestamp": "1747828320",
                        "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                        "contractName": "AssociateDebtModule",
                        "deployedOn": "contract.AssociateDebtModule",
                        "gasUsed": 2612609,
                        "gasCost": "812346162"
                      },
                      "AssociatedSystemsModule": {
                        "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                        "abi": [
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MissingAssociatedSystem(bytes32 id)",
                          "error Unauthorized(address addr)",
                          "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                          "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                          "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                          "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                          "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                        "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                        "contractName": "AssociatedSystemsModule",
                        "deployedOn": "contract.AssociatedSystemsModule",
                        "gasUsed": 877153,
                        "gasCost": "1160601901"
                      },
                      "CcipReceiverModule": {
                        "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                        "abi": [
                          "error InvalidMessage()",
                          "error NotCcipRouter(address)",
                          "error Unauthorized(address addr)",
                          "error UnsupportedNetwork(uint64)",
                          "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                        "deployTxnBlockNumber": "6660717",
                        "deployTimestamp": "1725880536",
                        "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                        "contractName": "CcipReceiverModule",
                        "deployedOn": "contract.CcipReceiverModule",
                        "gasUsed": 469476,
                        "gasCost": "49006680826"
                      },
                      "CollateralConfigurationModule": {
                        "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                        "abi": [
                          "error EmptyRevertReason()",
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowInt256ToUint256()",
                          "error PositionOutOfBounds()",
                          "error Unauthorized(address addr)",
                          "error ValueAlreadyInSet()",
                          "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                          "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                          "function getCollateralPrice(address collateralType) view returns (uint256)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                        "deployTxnBlockNumber": "8374753",
                        "deployTimestamp": "1747828332",
                        "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                        "contractName": "CollateralConfigurationModule",
                        "deployedOn": "contract.CollateralConfigurationModule",
                        "gasUsed": 872728,
                        "gasCost": "799886935"
                      },
                      "CollateralModule": {
                        "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                        "abi": [
                          "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                          "error AccountNotFound(uint128 accountId)",
                          "error CollateralDepositDisabled(address collateralType)",
                          "error CollateralNotFound()",
                          "error EmptyRevertReason()",
                          "error FailedTransfer(address from, address to, uint256 value)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientAccountCollateral(uint256 amount)",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint256ToUint128()",
                          "error OverflowUint256ToUint64()",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PositionOutOfBounds()",
                          "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                          "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                          "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                          "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                          "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                          "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                          "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                          "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                          "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                          "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                        "deployTxnBlockNumber": "8374754",
                        "deployTimestamp": "1747828344",
                        "sourceName": "contracts/modules/core/CollateralModule.sol",
                        "contractName": "CollateralModule",
                        "deployedOn": "contract.CollateralModule",
                        "gasUsed": 1937434,
                        "gasCost": "802377814"
                      },
                      "CrossChainUSDModule": {
                        "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                        "abi": [
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                          "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                        "deployTxnBlockNumber": "6660720",
                        "deployTimestamp": "1725880572",
                        "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                        "contractName": "CrossChainUSDModule",
                        "deployedOn": "contract.CrossChainUSDModule",
                        "gasUsed": 595289,
                        "gasCost": "49967783440"
                      },
                      "FeatureFlagModule": {
                        "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                        "abi": [
                          "error Unauthorized(address addr)",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                          "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                          "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                          "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                          "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                          "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function getDeniers(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                          "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                          "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                          "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function setDeniers(bytes32 feature, address[] deniers)",
                          "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                          "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                        "deployTxnBlockNumber": "6660721",
                        "deployTimestamp": "1725880596",
                        "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                        "contractName": "FeatureFlagModule",
                        "deployedOn": "contract.FeatureFlagModule",
                        "gasUsed": 777054,
                        "gasCost": "47712806352"
                      },
                      "IssueUSDModule": {
                        "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                        "abi": [
                          "error CollateralDepositDisabled(address collateralType)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                          "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                          "error InsufficientDebt(int256 currentDebt)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error MarketNotFound(uint128 marketId)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error OverflowUint256ToUint64()",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PoolNotFound(uint128 poolId)",
                          "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                          "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                        "deployTxnBlockNumber": "8374755",
                        "deployTimestamp": "1747828356",
                        "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                        "contractName": "IssueUSDModule",
                        "deployedOn": "contract.IssueUSDModule",
                        "gasUsed": 3042995,
                        "gasCost": "794478182"
                      },
                      "LiquidationModule": {
                        "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                        "abi": [
                          "error AccountNotFound(uint128 accountId)",
                          "error CannotScaleEmptyMapping()",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                          "error InsufficientMappedAmount()",
                          "error InvalidParameter(string parameter, string reason)",
                          "error MarketNotFound(uint128 marketId)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MustBeVaultLiquidated()",
                          "error OverflowInt128ToUint128()",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error OverflowUint256ToUint32()",
                          "error OverflowUint256ToUint64()",
                          "error OverflowUint32ToInt32()",
                          "error OverflowUint64ToInt64()",
                          "error PositionOutOfBounds()",
                          "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                          "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                          "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                        "deployTxnBlockNumber": "8374756",
                        "deployTimestamp": "1747828368",
                        "sourceName": "contracts/modules/core/LiquidationModule.sol",
                        "contractName": "LiquidationModule",
                        "deployedOn": "contract.LiquidationModule",
                        "gasUsed": 4620402,
                        "gasCost": "816261199"
                      },
                      "MarketCollateralModule": {
                        "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                        "abi": [
                          "error CollateralNotFound()",
                          "error EmptyRevertReason()",
                          "error FailedTransfer(address from, address to, uint256 value)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                          "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint256ToInt256()",
                          "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                          "error Unauthorized(address addr)",
                          "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                          "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                          "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                          "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                          "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                          "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                          "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                        "deployTxnBlockNumber": "8374757",
                        "deployTimestamp": "1747828380",
                        "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                        "contractName": "MarketCollateralModule",
                        "deployedOn": "contract.MarketCollateralModule",
                        "gasUsed": 1298300,
                        "gasCost": "812078176"
                      },
                      "MarketManagerModule": {
                        "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                        "abi": [
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error FeatureUnavailable(bytes32 which)",
                          "error IncorrectMarketInterface(address market)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error Unauthorized(address addr)",
                          "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                          "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                          "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                          "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                          "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                          "function getMarketAddress(uint128 marketId) view returns (address)",
                          "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                          "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                          "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                          "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                          "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                          "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                          "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                          "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                          "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                          "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                          "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                          "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                          "function getOracleManager() view returns (address)",
                          "function getUsdToken() view returns (address)",
                          "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                          "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                          "function registerMarket(address market) returns (uint128 marketId)",
                          "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                          "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                          "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                        "deployTxnBlockNumber": "8374758",
                        "deployTimestamp": "1747828392",
                        "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                        "contractName": "MarketManagerModule",
                        "deployedOn": "contract.MarketManagerModule",
                        "gasUsed": 2816393,
                        "gasCost": "798490927"
                      },
                      "PoolConfigurationModule": {
                        "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                        "abi": [
                          "error PoolNotFound(uint128 poolId)",
                          "error Unauthorized(address addr)",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event PoolApprovedAdded(uint256 poolId)",
                          "event PoolApprovedRemoved(uint256 poolId)",
                          "event PreferredPoolSet(uint256 poolId)",
                          "function addApprovedPool(uint128 poolId)",
                          "function getApprovedPools() view returns (uint256[])",
                          "function getPreferredPool() view returns (uint128)",
                          "function removeApprovedPool(uint128 poolId)",
                          "function setPreferredPool(uint128 poolId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                        "deployTxnBlockNumber": "8374759",
                        "deployTimestamp": "1747828404",
                        "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                        "contractName": "PoolConfigurationModule",
                        "deployedOn": "contract.PoolConfigurationModule",
                        "gasUsed": 446271,
                        "gasCost": "802346058"
                      },
                      "PoolModule": {
                        "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                        "abi": [
                          "error CapacityLocked(uint256 marketId)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error MarketNotFound(uint128 marketId)",
                          "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error PoolAlreadyExists(uint128 poolId)",
                          "error PoolNotFound(uint128 poolId)",
                          "error Unauthorized(address addr)",
                          "error ZeroAddress()",
                          "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                          "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                          "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                          "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                          "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                          "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                          "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                          "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function acceptPoolOwnership(uint128 poolId)",
                          "function createPool(uint128 requestedPoolId, address owner)",
                          "function getMinLiquidityRatio() view returns (uint256)",
                          "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                          "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                          "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                          "function getPoolName(uint128 poolId) view returns (string poolName)",
                          "function getPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                          "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                          "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                          "function renouncePoolNomination(uint128 poolId)",
                          "function renouncePoolOwnership(uint128 poolId)",
                          "function revokePoolNomination(uint128 poolId)",
                          "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                          "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                          "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                          "function setPoolName(uint128 poolId, string name)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                        "deployTxnBlockNumber": "8374760",
                        "deployTimestamp": "1747828416",
                        "sourceName": "contracts/modules/core/PoolModule.sol",
                        "contractName": "PoolModule",
                        "deployedOn": "contract.PoolModule",
                        "gasUsed": 4099803,
                        "gasCost": "791076552"
                      },
                      "RewardsManagerModule": {
                        "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                        "abi": [
                          "error AccountNotFound(uint128 accountId)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error OverflowUint256ToUint32()",
                          "error OverflowUint32ToInt32()",
                          "error OverflowUint64ToInt64()",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PositionOutOfBounds()",
                          "error RewardUnavailable(address distributor)",
                          "error Unauthorized(address addr)",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                          "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                          "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                          "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                        "deployTxnBlockNumber": "8374761",
                        "deployTimestamp": "1747828428",
                        "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                        "contractName": "RewardsManagerModule",
                        "deployedOn": "contract.RewardsManagerModule",
                        "gasUsed": 2642251,
                        "gasCost": "784183135"
                      },
                      "USDTokenModule": {
                        "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                        "abi": [
                          "error AlreadyInitialized()",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientBalance(uint256 required, uint256 existing)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error Unauthorized(address addr)",
                          "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                          "event Transfer(address indexed from, address indexed to, uint256 amount)",
                          "function allowance(address owner, address spender) view returns (uint256)",
                          "function approve(address spender, uint256 amount) returns (bool)",
                          "function balanceOf(address owner) view returns (uint256)",
                          "function burn(uint256 amount)",
                          "function burn(address target, uint256 amount)",
                          "function burnWithAllowance(address from, address spender, uint256 amount)",
                          "function decimals() view returns (uint8)",
                          "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                          "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                          "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address target, uint256 amount)",
                          "function name() view returns (string)",
                          "function setAllowance(address from, address spender, uint256 amount)",
                          "function symbol() view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transfer(address to, uint256 amount) returns (bool)",
                          "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                        "deployTxnBlockNumber": "6660731",
                        "deployTimestamp": "1725880740",
                        "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                        "contractName": "USDTokenModule",
                        "deployedOn": "contract.USDTokenModule",
                        "gasUsed": 1110294,
                        "gasCost": "53285251123"
                      },
                      "UtilsModule": {
                        "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                        "abi": [
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowUint256ToUint64()",
                          "error Unauthorized(address addr)",
                          "error ValueAlreadyInSet()",
                          "event ConfigSet(bytes32 indexed k, bytes32 v)",
                          "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                          "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                          "function configureOracleManager(address oracleManagerAddress)",
                          "function getConfig(bytes32 k) view returns (bytes32 v)",
                          "function getConfigAddress(bytes32 k) view returns (address v)",
                          "function getConfigUint(bytes32 k) view returns (uint256 v)",
                          "function getTrustedForwarder() pure returns (address)",
                          "function isTrustedForwarder(address forwarder) pure returns (bool)",
                          "function setConfig(bytes32 k, bytes32 v)",
                          "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                        "deployTxnBlockNumber": "8374762",
                        "deployTimestamp": "1747828440",
                        "sourceName": "contracts/modules/core/UtilsModule.sol",
                        "contractName": "UtilsModule",
                        "deployedOn": "contract.UtilsModule",
                        "gasUsed": 770698,
                        "gasCost": "783578952"
                      },
                      "VaultModule": {
                        "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                        "abi": [
                          "error CapacityLocked(uint256 marketId)",
                          "error CollateralDepositDisabled(address collateralType)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InsufficientAccountCollateral(uint256 amount)",
                          "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                          "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                          "error InsufficientDelegation(uint256 minDelegation)",
                          "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                          "error InvalidCollateralAmount()",
                          "error InvalidLeverage(uint256 leverage)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error MarketNotFound(uint128 marketId)",
                          "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                          "error OverflowInt128ToUint128()",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "error OverflowUint256ToUint32()",
                          "error OverflowUint32ToInt32()",
                          "error OverflowUint64ToInt64()",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                          "error PoolNotFound(uint128 poolId)",
                          "error PositionOutOfBounds()",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                          "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                          "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                          "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                          "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                          "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                          "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                          "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                          "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                          "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                          "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                        "deployTxnBlockNumber": "8374763",
                        "deployTimestamp": "1747828452",
                        "sourceName": "contracts/modules/core/VaultModule.sol",
                        "contractName": "VaultModule",
                        "deployedOn": "contract.VaultModule",
                        "gasUsed": 4732148,
                        "gasCost": "756426945"
                      },
                      "InitialModuleBundle": {
                        "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "sourceName": "contracts/modules/InitialModuleBundle.sol",
                        "contractName": "InitialModuleBundle",
                        "deployedOn": "contract.InitialModuleBundle",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialCoreProxy": {
                        "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [
                          "0x828EED723cAF0A8F822249231266E38dF614923C",
                          "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialCoreProxy",
                        "gasUsed": 185358,
                        "gasCost": "978908043"
                      },
                      "AccountRouter": {
                        "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error AlreadyInitialized()",
                          "error CannotSelfApprove(address addr)",
                          "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                          "error InvalidOwner(address addr)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidTransferRecipient(address addr)",
                          "error OverflowUint256ToUint128()",
                          "error TokenAlreadyMinted(uint256 id)",
                          "error TokenDoesNotExist(uint256 id)",
                          "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                          "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                          "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                          "function approve(address to, uint256 tokenId)",
                          "function balanceOf(address holder) view returns (uint256 balance)",
                          "function burn(uint256 tokenId)",
                          "function getApproved(uint256 tokenId) view returns (address operator)",
                          "function initialize(string tokenName, string tokenSymbol, string uri)",
                          "function isApprovedForAll(address holder, address operator) view returns (bool)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address to, uint256 tokenId)",
                          "function name() view returns (string)",
                          "function ownerOf(uint256 tokenId) view returns (address)",
                          "function safeMint(address to, uint256 tokenId, bytes data)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                          "function setAllowance(uint256 tokenId, address spender)",
                          "function setApprovalForAll(address operator, bool approved)",
                          "function setBaseTokenURI(string uri)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                          "function symbol() view returns (string)",
                          "function tokenByIndex(uint256 index) view returns (uint256)",
                          "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                          "function tokenURI(uint256 tokenId) view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transferFrom(address from, address to, uint256 tokenId)"
                        ],
                        "deployedOn": "router.AccountRouter",
                        "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                        "deployTxnBlockNumber": "8374764",
                        "deployTimestamp": "1747828464",
                        "contractName": "AccountRouter",
                        "sourceName": "AccountRouter.sol",
                        "gasUsed": 1963401,
                        "gasCost": "769642764"
                      },
                      "CoreRouter": {
                        "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                          "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                          "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                          "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                          "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                          "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function getDeniers(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                          "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                          "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                          "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function setDeniers(bytes32 feature, address[] deniers)",
                          "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                          "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InvalidAccountId(uint128 accountId)",
                          "error InvalidPermission(bytes32 permission)",
                          "error OnlyAccountTokenProxy(address origin)",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                          "error PositionOutOfBounds()",
                          "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                          "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "function createAccount() returns (uint128 accountId)",
                          "function createAccount(uint128 requestedAccountId)",
                          "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                          "function getAccountOwner(uint128 accountId) view returns (address)",
                          "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                          "function getAccountTokenAddress() view returns (address)",
                          "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                          "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function notifyAccountTransfer(address to, uint128 accountId)",
                          "function renouncePermission(uint128 accountId, bytes32 permission)",
                          "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                          "error AccountNotFound(uint128 accountId)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                          "error MarketNotFound(uint128 marketId)",
                          "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                          "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MissingAssociatedSystem(bytes32 id)",
                          "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                          "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                          "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                          "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                          "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                          "error InvalidMessage()",
                          "error NotCcipRouter(address)",
                          "error UnsupportedNetwork(uint64)",
                          "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                          "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                          "error CollateralDepositDisabled(address collateralType)",
                          "error CollateralNotFound()",
                          "error FailedTransfer(address from, address to, uint256 value)",
                          "error InsufficientAccountCollateral(uint256 amount)",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowUint256ToUint64()",
                          "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                          "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                          "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                          "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                          "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                          "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                          "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                          "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                          "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                          "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                          "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                          "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                          "function getCollateralPrice(address collateralType) view returns (uint256)",
                          "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                          "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                          "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                          "error InsufficientDebt(int256 currentDebt)",
                          "error PoolNotFound(uint128 poolId)",
                          "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                          "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                          "error CannotScaleEmptyMapping()",
                          "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                          "error InsufficientMappedAmount()",
                          "error MustBeVaultLiquidated()",
                          "error OverflowInt128ToUint128()",
                          "error OverflowUint256ToUint32()",
                          "error OverflowUint32ToInt32()",
                          "error OverflowUint64ToInt64()",
                          "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                          "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                          "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                          "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                          "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                          "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                          "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                          "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                          "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                          "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                          "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                          "error IncorrectMarketInterface(address market)",
                          "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                          "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                          "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                          "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                          "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                          "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                          "function getMarketAddress(uint128 marketId) view returns (address)",
                          "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                          "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                          "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                          "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                          "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                          "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                          "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                          "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                          "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                          "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                          "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                          "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                          "function getOracleManager() view returns (address)",
                          "function getUsdToken() view returns (address)",
                          "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                          "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                          "function registerMarket(address market) returns (uint128 marketId)",
                          "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                          "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                          "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                          "event PoolApprovedAdded(uint256 poolId)",
                          "event PoolApprovedRemoved(uint256 poolId)",
                          "event PreferredPoolSet(uint256 poolId)",
                          "function addApprovedPool(uint128 poolId)",
                          "function getApprovedPools() view returns (uint256[])",
                          "function getPreferredPool() view returns (uint128)",
                          "function removeApprovedPool(uint128 poolId)",
                          "function setPreferredPool(uint128 poolId)",
                          "error CapacityLocked(uint256 marketId)",
                          "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                          "error PoolAlreadyExists(uint128 poolId)",
                          "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                          "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                          "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                          "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                          "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                          "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                          "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                          "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function acceptPoolOwnership(uint128 poolId)",
                          "function createPool(uint128 requestedPoolId, address owner)",
                          "function getMinLiquidityRatio() view returns (uint256)",
                          "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                          "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                          "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                          "function getPoolName(uint128 poolId) view returns (string poolName)",
                          "function getPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                          "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                          "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                          "function renouncePoolNomination(uint128 poolId)",
                          "function renouncePoolOwnership(uint128 poolId)",
                          "function revokePoolNomination(uint128 poolId)",
                          "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                          "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                          "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                          "function setPoolName(uint128 poolId, string name)",
                          "error RewardUnavailable(address distributor)",
                          "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                          "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                          "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                          "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                          "event ConfigSet(bytes32 indexed k, bytes32 v)",
                          "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                          "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                          "function configureOracleManager(address oracleManagerAddress)",
                          "function getConfig(bytes32 k) view returns (bytes32 v)",
                          "function getConfigAddress(bytes32 k) view returns (address v)",
                          "function getConfigUint(bytes32 k) view returns (uint256 v)",
                          "function getTrustedForwarder() pure returns (address)",
                          "function isTrustedForwarder(address forwarder) pure returns (bool)",
                          "function setConfig(bytes32 k, bytes32 v)",
                          "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                          "error InsufficientDelegation(uint256 minDelegation)",
                          "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                          "error InvalidCollateralAmount()",
                          "error InvalidLeverage(uint256 leverage)",
                          "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                          "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                          "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                          "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                          "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                          "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                          "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                          "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                          "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                          "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                          "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                          "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                        ],
                        "deployedOn": "router.CoreRouter",
                        "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                        "deployTxnBlockNumber": "8374765",
                        "deployTimestamp": "1747828476",
                        "contractName": "CoreRouter",
                        "sourceName": "CoreRouter.sol",
                        "gasUsed": 5621270,
                        "gasCost": "779829074"
                      },
                      "USDRouter": {
                        "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MissingAssociatedSystem(bytes32 id)",
                          "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                          "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                          "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                          "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                          "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                          "error AlreadyInitialized()",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientBalance(uint256 required, uint256 existing)",
                          "error InvalidParameter(string parameter, string reason)",
                          "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                          "event Transfer(address indexed from, address indexed to, uint256 amount)",
                          "function allowance(address owner, address spender) view returns (uint256)",
                          "function approve(address spender, uint256 amount) returns (bool)",
                          "function balanceOf(address owner) view returns (uint256)",
                          "function burn(uint256 amount)",
                          "function burn(address target, uint256 amount)",
                          "function burnWithAllowance(address from, address spender, uint256 amount)",
                          "function decimals() view returns (uint8)",
                          "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                          "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                          "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address target, uint256 amount)",
                          "function name() view returns (string)",
                          "function setAllowance(address from, address spender, uint256 amount)",
                          "function symbol() view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transfer(address to, uint256 amount) returns (bool)",
                          "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                        ],
                        "deployedOn": "router.USDRouter",
                        "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                        "deployTxnBlockNumber": "8374766",
                        "deployTimestamp": "1747828488",
                        "contractName": "USDRouter",
                        "sourceName": "USDRouter.sol",
                        "gasUsed": 2087124,
                        "gasCost": "790603927"
                      },
                      "CoreProxy": {
                        "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error ValueAlreadyInSet()",
                          "error ValueNotInSet()",
                          "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                          "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                          "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                          "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                          "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                          "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function getDeniers(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                          "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                          "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                          "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                          "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                          "function setDeniers(bytes32 feature, address[] deniers)",
                          "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                          "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                          "error FeatureUnavailable(bytes32 which)",
                          "error InvalidAccountId(uint128 accountId)",
                          "error InvalidPermission(bytes32 permission)",
                          "error OnlyAccountTokenProxy(address origin)",
                          "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                          "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                          "error PositionOutOfBounds()",
                          "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                          "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                          "function createAccount() returns (uint128 accountId)",
                          "function createAccount(uint128 requestedAccountId)",
                          "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                          "function getAccountOwner(uint128 accountId) view returns (address)",
                          "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                          "function getAccountTokenAddress() view returns (address)",
                          "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                          "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                          "function notifyAccountTransfer(address to, uint128 accountId)",
                          "function renouncePermission(uint128 accountId, bytes32 permission)",
                          "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                          "error AccountNotFound(uint128 accountId)",
                          "error EmptyDistribution()",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                          "error MarketNotFound(uint128 marketId)",
                          "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                          "error OverflowInt256ToInt128()",
                          "error OverflowInt256ToUint256()",
                          "error OverflowUint128ToInt128()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint128()",
                          "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                          "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MissingAssociatedSystem(bytes32 id)",
                          "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                          "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                          "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                          "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                          "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                          "error InvalidMessage()",
                          "error NotCcipRouter(address)",
                          "error UnsupportedNetwork(uint64)",
                          "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                          "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                          "error CollateralDepositDisabled(address collateralType)",
                          "error CollateralNotFound()",
                          "error FailedTransfer(address from, address to, uint256 value)",
                          "error InsufficientAccountCollateral(uint256 amount)",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error OverflowUint256ToUint64()",
                          "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                          "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                          "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                          "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                          "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                          "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                          "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                          "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                          "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                          "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                          "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                          "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                          "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                          "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                          "function getCollateralPrice(address collateralType) view returns (uint256)",
                          "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                          "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                          "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                          "error InsufficientDebt(int256 currentDebt)",
                          "error PoolNotFound(uint128 poolId)",
                          "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                          "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                          "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                          "error CannotScaleEmptyMapping()",
                          "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                          "error InsufficientMappedAmount()",
                          "error MustBeVaultLiquidated()",
                          "error OverflowInt128ToUint128()",
                          "error OverflowUint256ToUint32()",
                          "error OverflowUint32ToInt32()",
                          "error OverflowUint64ToInt64()",
                          "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                          "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                          "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                          "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                          "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                          "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                          "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                          "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                          "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                          "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                          "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                          "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                          "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                          "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                          "error IncorrectMarketInterface(address market)",
                          "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                          "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                          "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                          "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                          "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                          "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                          "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                          "function getMarketAddress(uint128 marketId) view returns (address)",
                          "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                          "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                          "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                          "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                          "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                          "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                          "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                          "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                          "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                          "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                          "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                          "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                          "function getOracleManager() view returns (address)",
                          "function getUsdToken() view returns (address)",
                          "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                          "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                          "function registerMarket(address market) returns (uint128 marketId)",
                          "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                          "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                          "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                          "event PoolApprovedAdded(uint256 poolId)",
                          "event PoolApprovedRemoved(uint256 poolId)",
                          "event PreferredPoolSet(uint256 poolId)",
                          "function addApprovedPool(uint128 poolId)",
                          "function getApprovedPools() view returns (uint256[])",
                          "function getPreferredPool() view returns (uint128)",
                          "function removeApprovedPool(uint128 poolId)",
                          "function setPreferredPool(uint128 poolId)",
                          "error CapacityLocked(uint256 marketId)",
                          "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                          "error PoolAlreadyExists(uint128 poolId)",
                          "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                          "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                          "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                          "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                          "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                          "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                          "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                          "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                          "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function acceptPoolOwnership(uint128 poolId)",
                          "function createPool(uint128 requestedPoolId, address owner)",
                          "function getMinLiquidityRatio() view returns (uint256)",
                          "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                          "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                          "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                          "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                          "function getPoolName(uint128 poolId) view returns (string poolName)",
                          "function getPoolOwner(uint128 poolId) view returns (address)",
                          "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                          "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                          "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                          "function renouncePoolNomination(uint128 poolId)",
                          "function renouncePoolOwnership(uint128 poolId)",
                          "function revokePoolNomination(uint128 poolId)",
                          "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                          "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                          "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                          "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                          "function setPoolName(uint128 poolId, string name)",
                          "error RewardUnavailable(address distributor)",
                          "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                          "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                          "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                          "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                          "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                          "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                          "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                          "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                          "event ConfigSet(bytes32 indexed k, bytes32 v)",
                          "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                          "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                          "function configureOracleManager(address oracleManagerAddress)",
                          "function getConfig(bytes32 k) view returns (bytes32 v)",
                          "function getConfigAddress(bytes32 k) view returns (address v)",
                          "function getConfigUint(bytes32 k) view returns (uint256 v)",
                          "function getTrustedForwarder() pure returns (address)",
                          "function isTrustedForwarder(address forwarder) pure returns (bool)",
                          "function setConfig(bytes32 k, bytes32 v)",
                          "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                          "error InsufficientDelegation(uint256 minDelegation)",
                          "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                          "error InvalidCollateralAmount()",
                          "error InvalidLeverage(uint256 leverage)",
                          "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                          "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                          "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                          "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                          "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                          "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                          "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                          "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                          "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                          "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                          "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                          "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "constructorArgs": [
                          "<%= contracts.InitialModuleBundle.address %>",
                          "<%= settings.owner %>"
                        ],
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "invoke.upgrade_core_proxy",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      },
                      "AccountProxy": {
                        "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error AlreadyInitialized()",
                          "error CannotSelfApprove(address addr)",
                          "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                          "error InvalidOwner(address addr)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidTransferRecipient(address addr)",
                          "error OverflowUint256ToUint128()",
                          "error TokenAlreadyMinted(uint256 id)",
                          "error TokenDoesNotExist(uint256 id)",
                          "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                          "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                          "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                          "function approve(address to, uint256 tokenId)",
                          "function balanceOf(address holder) view returns (uint256 balance)",
                          "function burn(uint256 tokenId)",
                          "function getApproved(uint256 tokenId) view returns (address operator)",
                          "function initialize(string tokenName, string tokenSymbol, string uri)",
                          "function isApprovedForAll(address holder, address operator) view returns (bool)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address to, uint256 tokenId)",
                          "function name() view returns (string)",
                          "function ownerOf(uint256 tokenId) view returns (address)",
                          "function safeMint(address to, uint256 tokenId, bytes data)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId)",
                          "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                          "function setAllowance(uint256 tokenId, address spender)",
                          "function setApprovalForAll(address operator, bool approved)",
                          "function setBaseTokenURI(string uri)",
                          "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                          "function symbol() view returns (string)",
                          "function tokenByIndex(uint256 index) view returns (uint256)",
                          "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                          "function tokenURI(uint256 tokenId) view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transferFrom(address from, address to, uint256 tokenId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                        "contractName": "UUPSProxyWithOwner",
                        "deployedOn": "invoke.init_account",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      },
                      "USDProxy": {
                        "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                          "error MissingAssociatedSystem(bytes32 id)",
                          "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                          "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                          "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                          "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                          "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                          "error AlreadyInitialized()",
                          "error InsufficientAllowance(uint256 required, uint256 existing)",
                          "error InsufficientBalance(uint256 required, uint256 existing)",
                          "error InvalidParameter(string parameter, string reason)",
                          "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                          "event Transfer(address indexed from, address indexed to, uint256 amount)",
                          "function allowance(address owner, address spender) view returns (uint256)",
                          "function approve(address spender, uint256 amount) returns (bool)",
                          "function balanceOf(address owner) view returns (uint256)",
                          "function burn(uint256 amount)",
                          "function burn(address target, uint256 amount)",
                          "function burnWithAllowance(address from, address spender, uint256 amount)",
                          "function decimals() view returns (uint8)",
                          "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                          "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                          "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                          "function isInitialized() view returns (bool)",
                          "function mint(address target, uint256 amount)",
                          "function name() view returns (string)",
                          "function setAllowance(address from, address spender, uint256 amount)",
                          "function symbol() view returns (string)",
                          "function totalSupply() view returns (uint256)",
                          "function transfer(address to, uint256 amount) returns (bool)",
                          "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                        "contractName": "UUPSProxyWithOwner",
                        "deployedOn": "invoke.init_usd",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      }
                    },
                    "settings": {
                      "account_token_name": "Synthetix Account",
                      "account_token_symbol": "SACCT",
                      "bundleSalt": "main",
                      "oracle_manager_package": "oracle-manager",
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "main",
                      "usd_token_name": "Synthetic USD Token v3",
                      "usd_token_symbol": "sUSD",
                      "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                    },
                    "imports": {
                      "oracle_manager": {
                        "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                        "contracts": {
                          "NodeModule": {
                            "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                            "abi": [
                              "error EmptyRevertReason()",
                              "error Errors(bytes[] errors)",
                              "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                              "error InvalidParameter(string parameter, string reason)",
                              "error InvalidPrice(int256 price)",
                              "error NodeNotRegistered(bytes32 nodeId)",
                              "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                              "error OverflowInt256ToUint256()",
                              "error OverflowInt56ToInt24()",
                              "error OverflowUint256ToInt256()",
                              "error OverflowUint256ToUint160()",
                              "error OverflowUint56ToInt56()",
                              "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                              "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                              "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                              "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                            "deployTxnBlockNumber": "8374748",
                            "deployTimestamp": "1747828272",
                            "sourceName": "contracts/modules/NodeModule.sol",
                            "contractName": "NodeModule",
                            "deployedOn": "contract.NodeModule",
                            "gasUsed": 4896112,
                            "gasCost": "807273578"
                          },
                          "CoreModule": {
                            "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                            "abi": [
                              "error ImplementationIsSterile(address implementation)",
                              "error NoChange()",
                              "error NotAContract(address contr)",
                              "error NotNominated(address addr)",
                              "error Unauthorized(address addr)",
                              "error UpgradeSimulationFailed()",
                              "error ZeroAddress()",
                              "event OwnerChanged(address oldOwner, address newOwner)",
                              "event OwnerNominated(address newOwner)",
                              "event Upgraded(address indexed self, address implementation)",
                              "function acceptOwnership()",
                              "function getImplementation() view returns (address)",
                              "function nominateNewOwner(address newNominatedOwner)",
                              "function nominatedOwner() view returns (address)",
                              "function owner() view returns (address)",
                              "function renounceNomination()",
                              "function simulateUpgradeTo(address newImplementation)",
                              "function upgradeTo(address newImplementation)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "contracts/modules/CoreModule.sol",
                            "contractName": "CoreModule",
                            "deployedOn": "contract.CoreModule",
                            "gasUsed": 0,
                            "gasCost": "0"
                          },
                          "InitialProxy": {
                            "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                            "abi": [
                              "error ImplementationIsSterile(address implementation)",
                              "error NoChange()",
                              "error NotAContract(address contr)",
                              "error NotNominated(address addr)",
                              "error Unauthorized(address addr)",
                              "error UpgradeSimulationFailed()",
                              "error ZeroAddress()",
                              "event OwnerChanged(address oldOwner, address newOwner)",
                              "event OwnerNominated(address newOwner)",
                              "event Upgraded(address indexed self, address implementation)",
                              "function acceptOwnership()",
                              "function getImplementation() view returns (address)",
                              "function nominateNewOwner(address newNominatedOwner)",
                              "function nominatedOwner() view returns (address)",
                              "function owner() view returns (address)",
                              "function renounceNomination()",
                              "function simulateUpgradeTo(address newImplementation)",
                              "function upgradeTo(address newImplementation)"
                            ],
                            "constructorArgs": [
                              "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                              "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                            ],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "contracts/Proxy.sol",
                            "contractName": "Proxy",
                            "deployedOn": "contract.InitialProxy",
                            "gasUsed": 0,
                            "gasCost": "0"
                          },
                          "OracleRouter": {
                            "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                            "abi": [
                              "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                              "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                              "function facetAddresses() pure returns (address[] addresses)",
                              "function facetAddress(bytes4 functionSelector) pure returns (address)",
                              "function emitDiamondCutEvent() returns (bool)",
                              "error ImplementationIsSterile(address implementation)",
                              "error NoChange()",
                              "error NotAContract(address contr)",
                              "error NotNominated(address addr)",
                              "error Unauthorized(address addr)",
                              "error UpgradeSimulationFailed()",
                              "error ZeroAddress()",
                              "event OwnerChanged(address oldOwner, address newOwner)",
                              "event OwnerNominated(address newOwner)",
                              "event Upgraded(address indexed self, address implementation)",
                              "function acceptOwnership()",
                              "function getImplementation() view returns (address)",
                              "function nominateNewOwner(address newNominatedOwner)",
                              "function nominatedOwner() view returns (address)",
                              "function owner() view returns (address)",
                              "function renounceNomination()",
                              "function simulateUpgradeTo(address newImplementation)",
                              "function upgradeTo(address newImplementation)",
                              "error EmptyRevertReason()",
                              "error Errors(bytes[] errors)",
                              "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                              "error InvalidParameter(string parameter, string reason)",
                              "error InvalidPrice(int256 price)",
                              "error NodeNotRegistered(bytes32 nodeId)",
                              "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                              "error OverflowInt256ToUint256()",
                              "error OverflowInt56ToInt24()",
                              "error OverflowUint256ToInt256()",
                              "error OverflowUint256ToUint160()",
                              "error OverflowUint56ToInt56()",
                              "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                              "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                              "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                              "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                            ],
                            "deployedOn": "router.OracleRouter",
                            "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                            "deployTxnBlockNumber": "8374749",
                            "deployTimestamp": "1747828284",
                            "contractName": "OracleRouter",
                            "sourceName": "OracleRouter.sol",
                            "gasUsed": 1728151,
                            "gasCost": "866245566"
                          },
                          "Proxy": {
                            "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                            "abi": [
                              "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                              "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                              "function facetAddresses() pure returns (address[] addresses)",
                              "function facetAddress(bytes4 functionSelector) pure returns (address)",
                              "function emitDiamondCutEvent() returns (bool)",
                              "error ImplementationIsSterile(address implementation)",
                              "error NoChange()",
                              "error NotAContract(address contr)",
                              "error NotNominated(address addr)",
                              "error Unauthorized(address addr)",
                              "error UpgradeSimulationFailed()",
                              "error ZeroAddress()",
                              "event OwnerChanged(address oldOwner, address newOwner)",
                              "event OwnerNominated(address newOwner)",
                              "event Upgraded(address indexed self, address implementation)",
                              "function acceptOwnership()",
                              "function getImplementation() view returns (address)",
                              "function nominateNewOwner(address newNominatedOwner)",
                              "function nominatedOwner() view returns (address)",
                              "function owner() view returns (address)",
                              "function renounceNomination()",
                              "function simulateUpgradeTo(address newImplementation)",
                              "function upgradeTo(address newImplementation)",
                              "error EmptyRevertReason()",
                              "error Errors(bytes[] errors)",
                              "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                              "error InvalidParameter(string parameter, string reason)",
                              "error InvalidPrice(int256 price)",
                              "error NodeNotRegistered(bytes32 nodeId)",
                              "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                              "error OverflowInt256ToUint256()",
                              "error OverflowInt56ToInt24()",
                              "error OverflowUint256ToInt256()",
                              "error OverflowUint256ToUint160()",
                              "error OverflowUint56ToInt56()",
                              "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                              "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                              "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                              "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                              "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                              "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                            ],
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "",
                            "sourceName": "contracts/Proxy.sol",
                            "contractName": "Proxy",
                            "deployedOn": "invoke.upgrade_proxy",
                            "gasUsed": 0,
                            "gasCost": "0",
                            "highlight": true
                          }
                        },
                        "imports": {
                          "trusted_multicall_forwarder": {
                            "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                            "tags": [
                              "latest"
                            ],
                            "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                            "preset": "with-oracle-manager",
                            "settings": {
                              "salt": "salt"
                            },
                            "contracts": {
                              "TrustedMulticallForwarder": {
                                "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                                "abi": [
                                  "constructor()",
                                  "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                                  "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                                  "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                                  "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                                  "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                                  "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                                  "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                                  "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                                  "function getBasefee() view returns (uint256 basefee)",
                                  "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                                  "function getBlockNumber() view returns (uint256 blockNumber)",
                                  "function getChainId() view returns (uint256 chainid)",
                                  "function getCurrentBlockCoinbase() view returns (address coinbase)",
                                  "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                                  "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                                  "function getEthBalance(address addr) view returns (uint256 balance)",
                                  "function getLastBlockHash() view returns (bytes32 blockHash)",
                                  "function getPrevRandao() view returns (uint256 prevrandao)",
                                  "function nonces(address owner) view returns (uint256)",
                                  "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                                  "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                                  "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                                  "event EIP712DomainChanged()",
                                  "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                                  "error AddressInsufficientBalance(address account)",
                                  "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                                  "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                                  "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                                  "error ERC2771UntrustfulTarget(address target, address forwarder)",
                                  "error FailedInnerCall()",
                                  "error InvalidAccountNonce(address account, uint256 currentNonce)",
                                  "error InvalidShortString()",
                                  "error StringTooLong(string str)"
                                ],
                                "constructorArgs": [],
                                "linkedLibraries": {},
                                "deployTxnHash": "",
                                "deployTxnBlockNumber": "",
                                "deployTimestamp": "1727702064",
                                "sourceName": "src/TrustedMulticallForwarder.sol",
                                "contractName": "TrustedMulticallForwarder",
                                "deployedOn": "contract.TrustedMulticallForwarder",
                                "gasUsed": 0,
                                "gasCost": "0"
                              }
                            },
                            "extras": {
                              "salt": "salt"
                            }
                          }
                        },
                        "settings": {
                          "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                          "salt": "oracle-manager-official"
                        },
                        "txns": {
                          "upgrade_proxy": {
                            "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                            "blockNumber": "8374750",
                            "timestamp": "1747828296",
                            "events": {
                              "Upgraded": [
                                {
                                  "name": "Upgraded",
                                  "args": [
                                    "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                                    "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                                  ]
                                }
                              ]
                            },
                            "deployedOn": "invoke.upgrade_proxy",
                            "gasUsed": 55420,
                            "gasCost": "863204254",
                            "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                          }
                        },
                        "extras": {
                          "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                          "salt": "oracle-manager-official"
                        }
                      }
                    },
                    "txns": {
                      "register_const_one_oracle": {
                        "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                        "events": {
                          "NodeRegistered": [
                            {
                              "name": "NodeRegistered",
                              "args": [
                                "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                                8,
                                "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                                []
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.register_const_one_oracle",
                        "gasUsed": 108479,
                        "gasCost": "922529803",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "upgrade_core_proxy": {
                        "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                        "blockNumber": "8374767",
                        "timestamp": "1747828500",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                                "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_core_proxy",
                        "gasUsed": 51327,
                        "gasCost": "785077138",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_burnUsd": {
                        "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6275726e55736400000000000000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_burnUsd",
                        "gasUsed": 56949,
                        "gasCost": "1117962692",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_claimRewards": {
                        "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x636c61696d526577617264730000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_claimRewards",
                        "gasUsed": 57009,
                        "gasCost": "1081589799",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_createAccount": {
                        "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_createAccount",
                        "gasUsed": 57021,
                        "gasCost": "1189291565",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_delegateCollateral": {
                        "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_delegateCollateral",
                        "gasUsed": 57081,
                        "gasCost": "1145067438",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_deposit": {
                        "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6465706f73697400000000000000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_deposit",
                        "gasUsed": 56949,
                        "gasCost": "1099485069",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_depositMarketCollateral": {
                        "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                        "gasUsed": 57141,
                        "gasCost": "1050556709",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_depositMarketUsd": {
                        "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_depositMarketUsd",
                        "gasUsed": 57057,
                        "gasCost": "997930950",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_liquidate": {
                        "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6c69717569646174650000000000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_liquidate",
                        "gasUsed": 56973,
                        "gasCost": "1064136427",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_liquidateToTreasury": {
                        "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                        "blockNumber": "8374768",
                        "timestamp": "1747828512",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                        "gasUsed": 57111,
                        "gasCost": "769840723",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_liquidateVault": {
                        "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_liquidateVault",
                        "gasUsed": 57033,
                        "gasCost": "1013537198",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_migrateDelegation": {
                        "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                        "blockNumber": "8374769",
                        "timestamp": "1747828524",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_migrateDelegation",
                        "gasUsed": 57087,
                        "gasCost": "745322710",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_mintUsd": {
                        "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_mintUsd",
                        "gasUsed": 56949,
                        "gasCost": "977776751",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_withdraw": {
                        "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x7769746864726177000000000000000000000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_withdraw",
                        "gasUsed": 56961,
                        "gasCost": "1025829153",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_withdrawMarketCollateral": {
                        "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                        "gasUsed": 57153,
                        "gasCost": "993756197",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "enable_feature_withdrawMarketUsd": {
                        "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                        "events": {
                          "FeatureFlagAllowAllSet": [
                            {
                              "name": "FeatureFlagAllowAllSet",
                              "args": [
                                "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                                true
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                        "gasUsed": 57069,
                        "gasCost": "960143044",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "init_account": {
                        "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                        "blockNumber": "8374770",
                        "timestamp": "1747828536",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                                "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                              ]
                            }
                          ],
                          "AssociatedSystemSet": [
                            {
                              "name": "AssociatedSystemSet",
                              "args": [
                                "0x6572633732310000000000000000000000000000000000000000000000000000",
                                "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                                "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                                "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.init_account",
                        "gasUsed": 80746,
                        "gasCost": "743339977",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "init_usd": {
                        "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                        "blockNumber": "8374771",
                        "timestamp": "1747828548",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                                "0xA999E916141368c05BE86965c0161a9De958d82b"
                              ]
                            }
                          ],
                          "AssociatedSystemSet": [
                            {
                              "name": "AssociatedSystemSet",
                              "args": [
                                "0x6572633230000000000000000000000000000000000000000000000000000000",
                                "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                                "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                                "0xA999E916141368c05BE86965c0161a9De958d82b"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.init_usd",
                        "gasUsed": 94076,
                        "gasCost": "728100935",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "set_oracle_manager": {
                        "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                        "events": {},
                        "deployedOn": "invoke.set_oracle_manager",
                        "gasUsed": 54810,
                        "gasCost": "979601782",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      },
                      "configure_usd_collateral": {
                        "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                        "events": {
                          "CollateralConfigured": [
                            {
                              "name": "CollateralConfigured",
                              "args": [
                                "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                                {
                                  "depositingEnabled": true,
                                  "issuanceRatioD18": "10000000000000000000",
                                  "liquidationRatioD18": "10000000000000000000",
                                  "liquidationRewardD18": "0",
                                  "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                                  "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                                  "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                                }
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.configure_usd_collateral",
                        "gasUsed": 240627,
                        "gasCost": "1006144889",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      }
                    },
                    "extras": {
                      "account_token_name": "Synthetix Account",
                      "account_token_symbol": "SACCT",
                      "bundleSalt": "main",
                      "oracle_manager_package": "oracle-manager",
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "main",
                      "usd_token_name": "Synthetic USD Token v3",
                      "usd_token_symbol": "sUSD",
                      "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                    }
                  }
                },
                "txns": {
                  "upgradeSpotMarketProxy": {
                    "hash": "0x72d21781ed551b109fab7b33ad127ed7e85d6f1dce732ef93b35f56052527031",
                    "blockNumber": "8374792",
                    "timestamp": "1747828800",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2",
                            "0x49232BD36374bD5e129dd2E91DA18a81dC87832D"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgradeSpotMarketProxy",
                    "gasUsed": 55639,
                    "gasCost": "608426990",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "addCreateSynthToFeatureFlag": {
                    "hash": "0x6b7787cb6cae5d795709e0aee1d57c5084b46e154cc93201afa5f02e6b8a1db0",
                    "events": {
                      "FeatureFlagAllowlistAdded": [
                        {
                          "name": "FeatureFlagAllowlistAdded",
                          "args": [
                            "0x63726561746553796e7468000000000000000000000000000000000000000000",
                            "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.addCreateSynthToFeatureFlag",
                    "gasUsed": 101741,
                    "gasCost": "1110072932",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "addSpotMarketToFeatureFlag": {
                    "hash": "0x7650a7a9ca46d4c52bed108d606787392706e162f534ba8d46cf605e0c9e0ffa",
                    "events": {
                      "FeatureFlagAllowlistAdded": [
                        {
                          "name": "FeatureFlagAllowlistAdded",
                          "args": [
                            "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                            "0xdBE114Ef3054Ad9Ed2A3b6beee538433f72BAfc2"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.addSpotMarketToFeatureFlag",
                    "gasUsed": 84533,
                    "gasCost": "1131265221",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "setSynthImplementation": {
                    "hash": "0xed4111894e8ec3ffb62c70b2cccf49077e135f7b5fcf06b16b8ddb1773771a16",
                    "blockNumber": "8374793",
                    "timestamp": "1747828812",
                    "events": {
                      "SynthImplementationSet": [
                        {
                          "name": "SynthImplementationSet",
                          "args": [
                            "0x3BF31896b2CC5E18AF9Bb81Cd007A1ce8613418C"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.setSynthImplementation",
                    "gasUsed": 39116,
                    "gasCost": "594183825",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "setSynthetixSystem": {
                    "hash": "0x2f1ed3ed26dcf2e170f8f5730fb6b09ba331b7952621b856caeecd9669829d03",
                    "events": {
                      "SynthetixSystemSet": [
                        {
                          "name": "SynthetixSystemSet",
                          "args": [
                            "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.setSynthetixSystem",
                    "gasUsed": 124255,
                    "gasCost": "1102958879",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "snax",
                  "synthetixPackage": "synthetix",
                  "synthetixPreset": "main"
                }
              },
              "synthetix": {
                "url": "ipfs://QmRtmBhsnHzsZPPyzFyfb4WA8PPwnKfuNyD2jBfmytc7yw",
                "contracts": {
                  "AccountModule": {
                    "address": "0x7297e7544F1f8a507BA3e5e325FBb969C154EECf",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "error ZeroAddress()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x46a3f477a4db34453e2f788315665c5e190a87b8787a61abfd6791540ede7815",
                    "deployTxnBlockNumber": "8374751",
                    "deployTimestamp": "1747828308",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "840868922"
                  },
                  "AccountTokenModule": {
                    "address": "0x88f064248CC20Bf14a115F2cf38e9c3f6a8B9f3c",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x4f43fd5d13494a9096ee86abeb40cdc73fe48efa4adb1213de95b231c6b1f21f",
                    "deployTxnBlockNumber": "6660715",
                    "deployTimestamp": "1725880512",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "49074705690"
                  },
                  "AssociateDebtModule": {
                    "address": "0x714e189cc7E3cba58199776D5420BF4ED1367Fe9",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x487723f15b0652a60edc096c7ed7c6dc7913a89edd2cbe55030b0f981caccc22",
                    "deployTxnBlockNumber": "8374752",
                    "deployTimestamp": "1747828320",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "812346162"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0x9fb00757BA9e33E3fEf51C1677D9D59E5a4ee9d6",
                    "abi": [
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "error Unauthorized(address addr)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xfec1aae80d0bbe0aa204e033c6536d62f882273b20367577a1c24de782569795",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1160601901"
                  },
                  "CcipReceiverModule": {
                    "address": "0x88aDfCA1fB9d4A5c003573BE0d8E9a1d1240eA99",
                    "abi": [
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error Unauthorized(address addr)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x17d5949063f690b744f8595361dd502121cfc75b2331e6eec7c7576cc22864ad",
                    "deployTxnBlockNumber": "6660717",
                    "deployTimestamp": "1725880536",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "49006680826"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x7A8A8F1df54ba15fF97ecA3765fa4fa24D626206",
                    "abi": [
                      "error EmptyRevertReason()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error PositionOutOfBounds()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x82175b1ef4df15d4d9a7d1538c828bfa5217d11ca76a78580841bc91cc9b318f",
                    "deployTxnBlockNumber": "8374753",
                    "deployTimestamp": "1747828332",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "799886935"
                  },
                  "CollateralModule": {
                    "address": "0xa529c684e54aD4D646508539E16b0147b904492C",
                    "abi": [
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error AccountNotFound(uint128 accountId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe35000617c3bf7f1ba68e04e3bf40318d2e2b1e8d1cef7ea6933c5e8e085bc89",
                    "deployTxnBlockNumber": "8374754",
                    "deployTimestamp": "1747828344",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "802377814"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xfA6b5ae60ddFc37c09Af1C25fABfBDED49121A7b",
                    "abi": [
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x1d9d3e54be06cbfee2918534c246f2b5e3cedd4c4be6c80744ac740373b5df0a",
                    "deployTxnBlockNumber": "6660720",
                    "deployTimestamp": "1725880572",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "49967783440"
                  },
                  "FeatureFlagModule": {
                    "address": "0x4A1A48F031eF1C5aE0A09635cE054CdF2f767588",
                    "abi": [
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x242789018cc036f0cc0b6ef0e95d8e828219a667b5ed1f35381e72f2f3157421",
                    "deployTxnBlockNumber": "6660721",
                    "deployTimestamp": "1725880596",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "47712806352"
                  },
                  "IssueUSDModule": {
                    "address": "0x0B9373aD7CaC7458a2389dBeD06d7F986dC99f89",
                    "abi": [
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xeae213f2b8772f75ad719d13bb79659f714a247b01012c33325e1ba7ecf2ea43",
                    "deployTxnBlockNumber": "8374755",
                    "deployTimestamp": "1747828356",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "794478182"
                  },
                  "LiquidationModule": {
                    "address": "0x7Ab591a06d5Bd3bBA4123fA4918dAE9833Ff437D",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error CannotScaleEmptyMapping()",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint256ToUint64()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PositionOutOfBounds()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xd2e9e1e8abfa58dbd631e430403deb059d98b07efa3ea338bc00ac114a32b811",
                    "deployTxnBlockNumber": "8374756",
                    "deployTimestamp": "1747828368",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "816261199"
                  },
                  "MarketCollateralModule": {
                    "address": "0x28555458955C04C9ccc6E594ab00Dd1aDa01CF80",
                    "abi": [
                      "error CollateralNotFound()",
                      "error EmptyRevertReason()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "error Unauthorized(address addr)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xc33554713454a0e30b8121fca315f326600c637b27a90f868e8d2da3a34dc7b9",
                    "deployTxnBlockNumber": "8374757",
                    "deployTimestamp": "1747828380",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "812078176"
                  },
                  "MarketManagerModule": {
                    "address": "0x4C4712809265C9ebF5D0929DD016F6F8582a08D6",
                    "abi": [
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error FeatureUnavailable(bytes32 which)",
                      "error IncorrectMarketInterface(address market)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error Unauthorized(address addr)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x197bfacc089fe39747ec254aa4157c19ce0f80e153d0b3dc99278ccfb428b67b",
                    "deployTxnBlockNumber": "8374758",
                    "deployTimestamp": "1747828392",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "798490927"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x6374Bb279b5145C6c62F8CF8eCB064e927BfA513",
                    "abi": [
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xe849b4e06b1c2f809fef78b5132bdaa5bb59180673bf4af58a458d70bad3e8be",
                    "deployTxnBlockNumber": "8374759",
                    "deployTimestamp": "1747828404",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "802346058"
                  },
                  "PoolModule": {
                    "address": "0xaC0f047BE43E2B1cF8a842260e6636A414a08101",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "error PoolNotFound(uint128 poolId)",
                      "error Unauthorized(address addr)",
                      "error ZeroAddress()",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x9e91025ca9c17e23d039d5c2648683a1ffcb03f65cd6790a96443463ca5787c8",
                    "deployTxnBlockNumber": "8374760",
                    "deployTimestamp": "1747828416",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "791076552"
                  },
                  "RewardsManagerModule": {
                    "address": "0x8bF8FdC959a9fAacC8351bB7A9c429a2c458F1De",
                    "abi": [
                      "error AccountNotFound(uint128 accountId)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PositionOutOfBounds()",
                      "error RewardUnavailable(address distributor)",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xa140d0fc80a07fee0a18ed4f74960a5c8b8097da0b6c5b76b7d37b45d6177daf",
                    "deployTxnBlockNumber": "8374761",
                    "deployTimestamp": "1747828428",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "784183135"
                  },
                  "USDTokenModule": {
                    "address": "0x7812Ac2c7c6f1f00dE85C76c727549ab0D70f784",
                    "abi": [
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error Unauthorized(address addr)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x15cb09301bffa7b8ed9b5f50a4be6bdbc2cf8de2b2de8e0bbc305d8772c283ef",
                    "deployTxnBlockNumber": "6660731",
                    "deployTimestamp": "1725880740",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "53285251123"
                  },
                  "UtilsModule": {
                    "address": "0xC569ad2b1DD921B4E1438dA331Be79D3FdFCe8d8",
                    "abi": [
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error Unauthorized(address addr)",
                      "error ValueAlreadyInSet()",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x79e3b261980c3104387556b07ef64b093759e282c1475462638bb8c91964786b",
                    "deployTxnBlockNumber": "8374762",
                    "deployTimestamp": "1747828440",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "783578952"
                  },
                  "VaultModule": {
                    "address": "0x441C9A3063ad9B8b23E42ed12D6E2A8FDE6e1E8c",
                    "abi": [
                      "error CapacityLocked(uint256 marketId)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error MarketNotFound(uint128 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error OverflowInt128ToUint128()",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "error PoolNotFound(uint128 poolId)",
                      "error PositionOutOfBounds()",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "0x5258ca6ad2462f51904e18dcccc365d2acefb46777a67853ee480737130a9c82",
                    "deployTxnBlockNumber": "8374763",
                    "deployTimestamp": "1747828452",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "756426945"
                  },
                  "InitialModuleBundle": {
                    "address": "0x828EED723cAF0A8F822249231266E38dF614923C",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/modules/InitialModuleBundle.sol",
                    "contractName": "InitialModuleBundle",
                    "deployedOn": "contract.InitialModuleBundle",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialCoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)"
                    ],
                    "constructorArgs": [
                      "0x828EED723cAF0A8F822249231266E38dF614923C",
                      "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "0xdfe76d836ab7b21d337f3ec8472402e8f6c23f0dc2924093b6452ac4602db8b3",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy",
                    "gasUsed": 185358,
                    "gasCost": "978908043"
                  },
                  "AccountRouter": {
                    "address": "0x9b7c69f5b61df63b9914986e61d8c9b0c3aaf8a5",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployedOn": "router.AccountRouter",
                    "deployTxnHash": "0xdfa8dd20dee6980218d1feb50f4e9c06b9fcc70726af3816ee220fe1f71ddd40",
                    "deployTxnBlockNumber": "8374764",
                    "deployTimestamp": "1747828464",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "769642764"
                  },
                  "CoreRouter": {
                    "address": "0x18346eaf797b6c26399c30968e48cf278466d7ab",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployedOn": "router.CoreRouter",
                    "deployTxnHash": "0xe1eb96efd14d9e21dc71fca9dccac9ac1602b4d2206eca51ed40840fae9fc46a",
                    "deployTxnBlockNumber": "8374765",
                    "deployTimestamp": "1747828476",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621270,
                    "gasCost": "779829074"
                  },
                  "USDRouter": {
                    "address": "0xa999e916141368c05be86965c0161a9de958d82b",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployedOn": "router.USDRouter",
                    "deployTxnHash": "0x327f916c2666bdfc839e121ba76c8e3d02972b5c2b0f6f6e492b7d1854d8ebb1",
                    "deployTxnBlockNumber": "8374766",
                    "deployTimestamp": "1747828488",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087124,
                    "gasCost": "790603927"
                  },
                  "CoreProxy": {
                    "address": "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error ValueAlreadyInSet()",
                      "error ValueNotInSet()",
                      "event FeatureFlagAllowAllSet(bytes32 indexed feature, bool allowAll)",
                      "event FeatureFlagAllowlistAdded(bytes32 indexed feature, address account)",
                      "event FeatureFlagAllowlistRemoved(bytes32 indexed feature, address account)",
                      "event FeatureFlagDeniersReset(bytes32 indexed feature, address[] deniers)",
                      "event FeatureFlagDenyAllSet(bytes32 indexed feature, bool denyAll)",
                      "function addToFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function getDeniers(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagAllowAll(bytes32 feature) view returns (bool)",
                      "function getFeatureFlagAllowlist(bytes32 feature) view returns (address[])",
                      "function getFeatureFlagDenyAll(bytes32 feature) view returns (bool)",
                      "function isFeatureAllowed(bytes32 feature, address account) view returns (bool)",
                      "function removeFromFeatureFlagAllowlist(bytes32 feature, address account)",
                      "function setDeniers(bytes32 feature, address[] deniers)",
                      "function setFeatureFlagAllowAll(bytes32 feature, bool allowAll)",
                      "function setFeatureFlagDenyAll(bytes32 feature, bool denyAll)",
                      "error FeatureUnavailable(bytes32 which)",
                      "error InvalidAccountId(uint128 accountId)",
                      "error InvalidPermission(bytes32 permission)",
                      "error OnlyAccountTokenProxy(address origin)",
                      "error PermissionDenied(uint128 accountId, bytes32 permission, address target)",
                      "error PermissionNotGranted(uint128 accountId, bytes32 permission, address user)",
                      "error PositionOutOfBounds()",
                      "event AccountCreated(uint128 indexed accountId, address indexed owner)",
                      "event PermissionGranted(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "event PermissionRevoked(uint128 indexed accountId, bytes32 indexed permission, address indexed user, address sender)",
                      "function createAccount() returns (uint128 accountId)",
                      "function createAccount(uint128 requestedAccountId)",
                      "function getAccountLastInteraction(uint128 accountId) view returns (uint256)",
                      "function getAccountOwner(uint128 accountId) view returns (address)",
                      "function getAccountPermissions(uint128 accountId) view returns (tuple(address user, bytes32[] permissions)[] accountPerms)",
                      "function getAccountTokenAddress() view returns (address)",
                      "function grantPermission(uint128 accountId, bytes32 permission, address user)",
                      "function hasPermission(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function isAuthorized(uint128 accountId, bytes32 permission, address user) view returns (bool)",
                      "function notifyAccountTransfer(address to, uint128 accountId)",
                      "function renouncePermission(uint128 accountId, bytes32 permission)",
                      "function revokePermission(uint128 accountId, bytes32 permission, address user)",
                      "error AccountNotFound(uint128 accountId)",
                      "error EmptyDistribution()",
                      "error EmptyRevertReason()",
                      "error Errors(bytes[] errors)",
                      "error InsufficientCollateralRatio(uint256 collateralValue, uint256 debt, uint256 ratio, uint256 minRatio)",
                      "error MarketNotFound(uint128 marketId)",
                      "error NotFundedByPool(uint256 marketId, uint256 poolId)",
                      "error OverflowInt256ToInt128()",
                      "error OverflowInt256ToUint256()",
                      "error OverflowUint128ToInt128()",
                      "error OverflowUint256ToInt256()",
                      "error OverflowUint256ToUint128()",
                      "event DebtAssociated(uint128 indexed marketId, uint128 indexed poolId, address indexed collateralType, uint128 accountId, uint256 amount, int256 updatedDebt)",
                      "function associateDebt(uint128 marketId, uint128 poolId, address collateralType, uint128 accountId, uint256 amount) returns (int256)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error InvalidMessage()",
                      "error NotCcipRouter(address)",
                      "error UnsupportedNetwork(uint64)",
                      "function ccipReceive(tuple(bytes32 messageId, uint64 sourceChainSelector, bytes sender, bytes data, tuple(address token, uint256 amount)[] tokenAmounts) message)",
                      "error AccountActivityTimeoutPending(uint128 accountId, uint256 currentTime, uint256 requiredTime)",
                      "error CollateralDepositDisabled(address collateralType)",
                      "error CollateralNotFound()",
                      "error FailedTransfer(address from, address to, uint256 value)",
                      "error InsufficientAccountCollateral(uint256 amount)",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientAvailableCollateral(uint256 amountAvailableForDelegationD18, uint256 amountD18)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error OverflowUint256ToUint64()",
                      "error PrecisionLost(uint256 tokenAmount, uint8 decimals)",
                      "event CollateralLockCreated(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, uint64 expireTimestamp)",
                      "event CollateralLockExpired(uint256 tokenAmount, uint64 expireTimestamp)",
                      "event Deposited(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "event Withdrawn(uint128 indexed accountId, address indexed collateralType, uint256 tokenAmount, address indexed sender)",
                      "function cleanExpiredLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) returns (uint256 cleared, uint256 remainingLockAmountD18)",
                      "function createLock(uint128 accountId, address collateralType, uint256 amount, uint64 expireTimestamp)",
                      "function deposit(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "function getAccountAvailableCollateral(uint128 accountId, address collateralType) view returns (uint256)",
                      "function getAccountCollateral(uint128 accountId, address collateralType) view returns (uint256 totalDeposited, uint256 totalAssigned, uint256 totalLocked)",
                      "function getLocks(uint128 accountId, address collateralType, uint256 offset, uint256 count) view returns (tuple(uint128 amountD18, uint64 lockExpirationTime)[] locks)",
                      "function withdraw(uint128 accountId, address collateralType, uint256 tokenAmount)",
                      "event CollateralConfigured(address indexed collateralType, tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function configureCollateral(tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18) config)",
                      "function getCollateralConfiguration(address collateralType) pure returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18))",
                      "function getCollateralConfigurations(bool hideDisabled) view returns (tuple(bool depositingEnabled, uint256 issuanceRatioD18, uint256 liquidationRatioD18, uint256 liquidationRewardD18, bytes32 oracleNodeId, address tokenAddress, uint256 minDelegationD18)[])",
                      "function getCollateralPrice(address collateralType) view returns (uint256)",
                      "error InsufficientCcipFee(uint256 requiredAmount, uint256 availableAmount)",
                      "event TransferCrossChainInitiated(uint64 indexed destChainId, uint256 indexed amount, address sender)",
                      "function transferCrossChain(uint64 destChainId, uint256 amount) payable returns (uint256 gasTokenUsed)",
                      "error InsufficientDebt(int256 currentDebt)",
                      "error PoolNotFound(uint128 poolId)",
                      "event UsdBurned(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "event UsdMinted(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, address indexed sender)",
                      "function burnUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "function mintUsd(uint128 accountId, uint128 poolId, address collateralType, uint256 amount)",
                      "error CannotScaleEmptyMapping()",
                      "error IneligibleForLiquidation(uint256 collateralValue, int256 debt, uint256 currentCRatio, uint256 cratio)",
                      "error InsufficientMappedAmount()",
                      "error MustBeVaultLiquidated()",
                      "error OverflowInt128ToUint128()",
                      "error OverflowUint256ToUint32()",
                      "error OverflowUint32ToInt32()",
                      "error OverflowUint64ToInt64()",
                      "event Liquidation(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "event VaultLiquidation(uint128 indexed poolId, address indexed collateralType, tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData, uint128 liquidateAsAccountId, address sender)",
                      "function isPositionLiquidatable(uint128 accountId, uint128 poolId, address collateralType) returns (bool)",
                      "function isVaultLiquidatable(uint128 poolId, address collateralType) returns (bool)",
                      "function liquidate(uint128 accountId, uint128 poolId, address collateralType, uint128 liquidateAsAccountId) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateToTreasury(uint128 accountId, uint128 poolId, address collateralType) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "function liquidateVault(uint128 poolId, address collateralType, uint128 liquidateAsAccountId, uint256 maxUsd) returns (tuple(uint256 debtLiquidated, uint256 collateralLiquidated, uint256 amountRewarded) liquidationData)",
                      "error InsufficientMarketCollateralDepositable(uint128 marketId, address collateralType, uint256 tokenAmountToDeposit)",
                      "error InsufficientMarketCollateralWithdrawable(uint128 marketId, address collateralType, uint256 tokenAmountToWithdraw)",
                      "event MarketCollateralDeposited(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MarketCollateralWithdrawn(uint128 indexed marketId, address indexed collateralType, uint256 tokenAmount, address indexed sender, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue, uint256 reportedDebt)",
                      "event MaximumMarketCollateralConfigured(uint128 indexed marketId, address indexed collateralType, uint256 systemAmount, address indexed owner)",
                      "function configureMaximumMarketCollateral(uint128 marketId, address collateralType, uint256 amount)",
                      "function depositMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "function getMarketCollateralAmount(uint128 marketId, address collateralType) view returns (uint256 collateralAmountD18)",
                      "function getMarketCollateralValue(uint128 marketId) view returns (uint256)",
                      "function getMaximumMarketCollateral(uint128 marketId, address collateralType) view returns (uint256)",
                      "function withdrawMarketCollateral(uint128 marketId, address collateralType, uint256 tokenAmount)",
                      "error IncorrectMarketInterface(address market)",
                      "error NotEnoughLiquidity(uint128 marketId, uint256 amount)",
                      "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                      "event MarketUsdDeposited(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event MarketUsdWithdrawn(uint128 indexed marketId, address indexed target, uint256 amount, address indexed market, int128 creditCapacity, int128 netIssuance, uint256 depositedCollateralValue)",
                      "event SetMarketMinLiquidityRatio(uint128 indexed marketId, uint256 minLiquidityRatio)",
                      "event SetMinDelegateTime(uint128 indexed marketId, uint32 minDelegateTime)",
                      "function depositMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "function distributeDebtToPools(uint128 marketId, uint256 maxIter) returns (bool)",
                      "function getMarketAddress(uint128 marketId) view returns (address)",
                      "function getMarketCapacityContributionFromPool(uint128 marketId, uint128 poolId) view returns (uint256)",
                      "function getMarketCollateral(uint128 marketId) view returns (uint256)",
                      "function getMarketDebtPerShare(uint128 marketId) returns (int256)",
                      "function getMarketFees(uint128, uint256 amount) view returns (uint256 depositFeeAmount, uint256 withdrawFeeAmount)",
                      "function getMarketMinDelegateTime(uint128 marketId) view returns (uint32)",
                      "function getMarketNetIssuance(uint128 marketId) view returns (int128)",
                      "function getMarketPoolDebtDistribution(uint128 marketId, uint128 poolId) returns (uint256 sharesD18, uint128 totalSharesD18, int128 valuePerShareD27)",
                      "function getMarketPoolMaxDebtPerShare(uint128 marketId, uint128 poolId) view returns (int256)",
                      "function getMarketPools(uint128 marketId) returns (uint128[] inRangePoolIds, uint128[] outRangePoolIds)",
                      "function getMarketReportedDebt(uint128 marketId) view returns (uint256)",
                      "function getMarketTotalDebt(uint128 marketId) view returns (int256)",
                      "function getMinLiquidityRatio(uint128 marketId) view returns (uint256)",
                      "function getOracleManager() view returns (address)",
                      "function getUsdToken() view returns (address)",
                      "function getWithdrawableMarketUsd(uint128 marketId) view returns (uint256)",
                      "function isMarketCapacityLocked(uint128 marketId) view returns (bool)",
                      "function registerMarket(address market) returns (uint128 marketId)",
                      "function setMarketMinDelegateTime(uint128 marketId, uint32 minDelegateTime)",
                      "function setMinLiquidityRatio(uint128 marketId, uint256 minLiquidityRatio)",
                      "function withdrawMarketUsd(uint128 marketId, address target, uint256 amount) returns (uint256 feeAmount)",
                      "event PoolApprovedAdded(uint256 poolId)",
                      "event PoolApprovedRemoved(uint256 poolId)",
                      "event PreferredPoolSet(uint256 poolId)",
                      "function addApprovedPool(uint128 poolId)",
                      "function getApprovedPools() view returns (uint256[])",
                      "function getPreferredPool() view returns (uint128)",
                      "function removeApprovedPool(uint128 poolId)",
                      "function setPreferredPool(uint128 poolId)",
                      "error CapacityLocked(uint256 marketId)",
                      "error MinDelegationTimeoutPending(uint128 poolId, uint32 timeRemaining)",
                      "error PoolAlreadyExists(uint128 poolId)",
                      "event PoolCollateralConfigurationUpdated(uint128 indexed poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "event PoolCollateralDisabledByDefaultSet(uint128 poolId, bool disabled)",
                      "event PoolConfigurationSet(uint128 indexed poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] markets, address indexed sender)",
                      "event PoolCreated(uint128 indexed poolId, address indexed owner, address indexed sender)",
                      "event PoolNameUpdated(uint128 indexed poolId, string name, address indexed sender)",
                      "event PoolNominationRenounced(uint128 indexed poolId, address indexed owner)",
                      "event PoolNominationRevoked(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnerNominated(uint128 indexed poolId, address indexed nominatedOwner, address indexed owner)",
                      "event PoolOwnershipAccepted(uint128 indexed poolId, address indexed owner)",
                      "event PoolOwnershipRenounced(uint128 indexed poolId, address indexed owner)",
                      "event SetMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function acceptPoolOwnership(uint128 poolId)",
                      "function createPool(uint128 requestedPoolId, address owner)",
                      "function getMinLiquidityRatio() view returns (uint256)",
                      "function getNominatedPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolCollateralConfiguration(uint128 poolId, address collateralType) view returns (tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) config)",
                      "function getPoolCollateralIssuanceRatio(uint128 poolId, address collateral) view returns (uint256)",
                      "function getPoolConfiguration(uint128 poolId) view returns (tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[])",
                      "function getPoolDebtPerShare(uint128 poolId) returns (int256 debtPerShareD18)",
                      "function getPoolName(uint128 poolId) view returns (string poolName)",
                      "function getPoolOwner(uint128 poolId) view returns (address)",
                      "function getPoolTotalDebt(uint128 poolId) returns (int256 totalDebtD18)",
                      "function nominatePoolOwner(address nominatedOwner, uint128 poolId)",
                      "function rebalancePool(uint128 poolId, address optionalCollateralType)",
                      "function renouncePoolNomination(uint128 poolId)",
                      "function renouncePoolOwnership(uint128 poolId)",
                      "function revokePoolNomination(uint128 poolId)",
                      "function setMinLiquidityRatio(uint256 minLiquidityRatio)",
                      "function setPoolCollateralConfiguration(uint128 poolId, address collateralType, tuple(uint256 collateralLimitD18, uint256 issuanceRatioD18) newConfig)",
                      "function setPoolCollateralDisabledByDefault(uint128 poolId, bool disabled)",
                      "function setPoolConfiguration(uint128 poolId, tuple(uint128 marketId, uint128 weightD18, int128 maxDebtShareValueD18)[] newMarketConfigurations)",
                      "function setPoolName(uint128 poolId, string name)",
                      "error RewardUnavailable(address distributor)",
                      "event RewardsClaimed(uint128 indexed accountId, uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount)",
                      "event RewardsDistributed(uint128 indexed poolId, address indexed collateralType, address distributor, uint256 amount, uint256 start, uint256 duration)",
                      "event RewardsDistributorRegistered(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "event RewardsDistributorRemoved(uint128 indexed poolId, address indexed collateralType, address indexed distributor)",
                      "function claimPoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function claimRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function distributeRewards(uint128 poolId, address collateralType, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function distributeRewardsByOwner(uint128 poolId, address collateralType, address rewardsDistributor, uint256 amount, uint64 start, uint32 duration) returns (int256)",
                      "function getAvailablePoolRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getAvailableRewards(uint128 accountId, uint128 poolId, address collateralType, address distributor) returns (uint256)",
                      "function getRewardRate(uint128 poolId, address collateralType, address distributor) view returns (uint256)",
                      "function registerRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function removeRewardsDistributor(uint128 poolId, address collateralType, address distributor)",
                      "function updateRewards(uint128 poolId, address collateralType, uint128 accountId) returns (uint256[], address[], uint256)",
                      "event ConfigSet(bytes32 indexed k, bytes32 v)",
                      "event NewSupportedCrossChainNetwork(uint64 newChainId)",
                      "function configureChainlinkCrossChain(address ccipRouter, address ccipTokenPool)",
                      "function configureOracleManager(address oracleManagerAddress)",
                      "function getConfig(bytes32 k) view returns (bytes32 v)",
                      "function getConfigAddress(bytes32 k) view returns (address v)",
                      "function getConfigUint(bytes32 k) view returns (uint256 v)",
                      "function getTrustedForwarder() pure returns (address)",
                      "function isTrustedForwarder(address forwarder) pure returns (bool)",
                      "function setConfig(bytes32 k, bytes32 v)",
                      "function setSupportedCrossChainNetworks(uint64[] supportedNetworks, uint64[] ccipSelectors) returns (uint256 numRegistered)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "error InsufficientDelegation(uint256 minDelegation)",
                      "error InsufficientVaultCollateralRatio(uint128 poolId, address collateralType)",
                      "error InvalidCollateralAmount()",
                      "error InvalidLeverage(uint256 leverage)",
                      "error PoolCollateralLimitExceeded(uint128 poolId, address collateralType, uint256 currentCollateral, uint256 maxCollateral)",
                      "event DelegationUpdated(uint128 indexed accountId, uint128 indexed poolId, address collateralType, uint256 amount, uint256 leverage, address indexed sender)",
                      "function delegateCollateral(uint128 accountId, uint128 poolId, address collateralType, uint256 newCollateralAmountD18, uint256 leverage)",
                      "function getLastDelegationTime(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 lastDelegationTime)",
                      "function getPosition(uint128 accountId, uint128 poolId, address collateralType) returns (uint256 collateralAmount, uint256 collateralValue, int256 debt, uint256 collateralizationRatio)",
                      "function getPositionCollateral(uint128 accountId, uint128 poolId, address collateralType) view returns (uint256 amount)",
                      "function getPositionCollateralRatio(uint128 accountId, uint128 poolId, address collateralType) returns (uint256)",
                      "function getPositionDebt(uint128 accountId, uint128 poolId, address collateralType) returns (int256 debt)",
                      "function getVaultCollateral(uint128 poolId, address collateralType) view returns (uint256 amount, uint256 value)",
                      "function getVaultCollateralRatio(uint128 poolId, address collateralType) returns (uint256)",
                      "function getVaultDebt(uint128 poolId, address collateralType) returns (int256)",
                      "function migrateDelegation(uint128 accountId, uint128 oldPoolId, address collateralType, uint128 newPoolId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "constructorArgs": [
                      "<%= contracts.InitialModuleBundle.address %>",
                      "<%= settings.owner %>"
                    ],
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "AccountProxy": {
                    "address": "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error AlreadyInitialized()",
                      "error CannotSelfApprove(address addr)",
                      "error IndexOverrun(uint256 requestedIndex, uint256 length)",
                      "error InvalidOwner(address addr)",
                      "error InvalidParameter(string parameter, string reason)",
                      "error InvalidTransferRecipient(address addr)",
                      "error OverflowUint256ToUint128()",
                      "error TokenAlreadyMinted(uint256 id)",
                      "error TokenDoesNotExist(uint256 id)",
                      "event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)",
                      "event ApprovalForAll(address indexed owner, address indexed operator, bool approved)",
                      "event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
                      "function approve(address to, uint256 tokenId)",
                      "function balanceOf(address holder) view returns (uint256 balance)",
                      "function burn(uint256 tokenId)",
                      "function getApproved(uint256 tokenId) view returns (address operator)",
                      "function initialize(string tokenName, string tokenSymbol, string uri)",
                      "function isApprovedForAll(address holder, address operator) view returns (bool)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address to, uint256 tokenId)",
                      "function name() view returns (string)",
                      "function ownerOf(uint256 tokenId) view returns (address)",
                      "function safeMint(address to, uint256 tokenId, bytes data)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId)",
                      "function safeTransferFrom(address from, address to, uint256 tokenId, bytes data)",
                      "function setAllowance(uint256 tokenId, address spender)",
                      "function setApprovalForAll(address operator, bool approved)",
                      "function setBaseTokenURI(string uri)",
                      "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                      "function symbol() view returns (string)",
                      "function tokenByIndex(uint256 index) view returns (uint256)",
                      "function tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)",
                      "function tokenURI(uint256 tokenId) view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transferFrom(address from, address to, uint256 tokenId)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  },
                  "USDProxy": {
                    "address": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                    "abi": [
                      "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                      "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                      "function facetAddresses() pure returns (address[] addresses)",
                      "function facetAddress(bytes4 functionSelector) pure returns (address)",
                      "function emitDiamondCutEvent() returns (bool)",
                      "error ImplementationIsSterile(address implementation)",
                      "error NoChange()",
                      "error NotAContract(address contr)",
                      "error NotNominated(address addr)",
                      "error Unauthorized(address addr)",
                      "error UpgradeSimulationFailed()",
                      "error ZeroAddress()",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event Upgraded(address indexed self, address implementation)",
                      "function acceptOwnership()",
                      "function getImplementation() view returns (address)",
                      "function nominateNewOwner(address newNominatedOwner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function renounceNomination()",
                      "function simulateUpgradeTo(address newImplementation)",
                      "function upgradeTo(address newImplementation)",
                      "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                      "error MissingAssociatedSystem(bytes32 id)",
                      "event AssociatedSystemSet(bytes32 indexed kind, bytes32 indexed id, address proxy, address impl)",
                      "function getAssociatedSystem(bytes32 id) view returns (address addr, bytes32 kind)",
                      "function initOrUpgradeNft(bytes32 id, string name, string symbol, string uri, address impl)",
                      "function initOrUpgradeToken(bytes32 id, string name, string symbol, uint8 decimals, address impl)",
                      "function registerUnmanagedSystem(bytes32 id, address endpoint)",
                      "error AlreadyInitialized()",
                      "error InsufficientAllowance(uint256 required, uint256 existing)",
                      "error InsufficientBalance(uint256 required, uint256 existing)",
                      "error InvalidParameter(string parameter, string reason)",
                      "event Approval(address indexed owner, address indexed spender, uint256 amount)",
                      "event Transfer(address indexed from, address indexed to, uint256 amount)",
                      "function allowance(address owner, address spender) view returns (uint256)",
                      "function approve(address spender, uint256 amount) returns (bool)",
                      "function balanceOf(address owner) view returns (uint256)",
                      "function burn(uint256 amount)",
                      "function burn(address target, uint256 amount)",
                      "function burnWithAllowance(address from, address spender, uint256 amount)",
                      "function decimals() view returns (uint8)",
                      "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
                      "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
                      "function initialize(string tokenName, string tokenSymbol, uint8 tokenDecimals)",
                      "function isInitialized() view returns (bool)",
                      "function mint(address target, uint256 amount)",
                      "function name() view returns (string)",
                      "function setAllowance(address from, address spender, uint256 amount)",
                      "function symbol() view returns (string)",
                      "function totalSupply() view returns (uint256)",
                      "function transfer(address to, uint256 amount) returns (bool)",
                      "function transferFrom(address from, address to, uint256 amount) returns (bool)"
                    ],
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "",
                    "sourceName": "@synthetixio/core-contracts/contracts/proxy/UUPSProxyWithOwner.sol",
                    "contractName": "UUPSProxyWithOwner",
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 0,
                    "gasCost": "0",
                    "highlight": true
                  }
                },
                "settings": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmSPfNCYL81obbLUZAqP519S4uiWBpSswmLta3HBTavcJ2",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1004bB25635823C02cD8F5d22b6E4cB42de19d53",
                        "abi": [
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "0x01e6e242f85db269a26c4a22ac45570e6164ca54653498082c8ab2709e2ba75a",
                        "deployTxnBlockNumber": "8374748",
                        "deployTimestamp": "1747828272",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "807273578"
                      },
                      "CoreModule": {
                        "address": "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)"
                        ],
                        "constructorArgs": [
                          "0xf3b78D43A79737bcbF3b7E2b4Ae1CA660cBE7bc2",
                          "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1727702064",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x1f10bda2644f77e70ce8cd49b2b9469ffd37856b",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployedOn": "router.OracleRouter",
                        "deployTxnHash": "0xbb7e5a4eab3856ce188034af18cebfb1ac63872d8f0aa139e5ae8e5d7b12c5a2",
                        "deployTxnBlockNumber": "8374749",
                        "deployTimestamp": "1747828284",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "866245566"
                      },
                      "Proxy": {
                        "address": "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                        "abi": [
                          "function facets() pure returns (tuple(address facetAddress, bytes4[] functionSelectors)[])",
                          "function facetFunctionSelectors(address facet) pure returns (bytes4[] functionSelectors)",
                          "function facetAddresses() pure returns (address[] addresses)",
                          "function facetAddress(bytes4 functionSelector) pure returns (address)",
                          "function emitDiamondCutEvent() returns (bool)",
                          "error ImplementationIsSterile(address implementation)",
                          "error NoChange()",
                          "error NotAContract(address contr)",
                          "error NotNominated(address addr)",
                          "error Unauthorized(address addr)",
                          "error UpgradeSimulationFailed()",
                          "error ZeroAddress()",
                          "event OwnerChanged(address oldOwner, address newOwner)",
                          "event OwnerNominated(address newOwner)",
                          "event Upgraded(address indexed self, address implementation)",
                          "function acceptOwnership()",
                          "function getImplementation() view returns (address)",
                          "function nominateNewOwner(address newNominatedOwner)",
                          "function nominatedOwner() view returns (address)",
                          "function owner() view returns (address)",
                          "function renounceNomination()",
                          "function simulateUpgradeTo(address newImplementation)",
                          "function upgradeTo(address newImplementation)",
                          "error EmptyRevertReason()",
                          "error Errors(bytes[] errors)",
                          "error InvalidNodeDefinition(tuple(uint8 nodeType, bytes parameters, bytes32[] parents) nodeType)",
                          "error InvalidParameter(string parameter, string reason)",
                          "error InvalidPrice(int256 price)",
                          "error NodeNotRegistered(bytes32 nodeId)",
                          "error OracleDataRequired(address oracleContract, bytes oracleQuery)",
                          "error OverflowInt256ToUint256()",
                          "error OverflowInt56ToInt24()",
                          "error OverflowUint256ToInt256()",
                          "error OverflowUint256ToUint160()",
                          "error OverflowUint56ToInt56()",
                          "event NodeRegistered(bytes32 nodeId, uint8 nodeType, bytes parameters, bytes32[] parents)",
                          "function getNode(bytes32 nodeId) pure returns (tuple(uint8 nodeType, bytes parameters, bytes32[] parents) node)",
                          "function getNodeId(uint8 nodeType, bytes parameters, bytes32[] parents) pure returns (bytes32 nodeId)",
                          "function process(bytes32 nodeId) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function processManyWithManyRuntime(bytes32[] nodeIds, bytes32[][] runtimeKeys, bytes32[][] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processManyWithRuntime(bytes32[] nodeIds, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2)[] nodes)",
                          "function processWithRuntime(bytes32 nodeId, bytes32[] runtimeKeys, bytes32[] runtimeValues) view returns (tuple(int256 price, uint256 timestamp, uint256 __slotAvailableForFutureUse1, uint256 __slotAvailableForFutureUse2) node)",
                          "function registerNode(uint8 nodeType, bytes parameters, bytes32[] parents) returns (bytes32 nodeId)"
                        ],
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 0,
                        "gasCost": "0",
                        "highlight": true
                      }
                    },
                    "imports": {
                      "trusted_multicall_forwarder": {
                        "url": "ipfs://QmX9JuWs5idgL4tNYv1DByy4WqvnTdyq49wA2ZV93sBmg7",
                        "tags": [
                          "latest"
                        ],
                        "target": "trusted-multicall-forwarder:latest@with-oracle-manager",
                        "preset": "with-oracle-manager",
                        "settings": {
                          "salt": "salt"
                        },
                        "contracts": {
                          "TrustedMulticallForwarder": {
                            "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                            "abi": [
                              "constructor()",
                              "function aggregate(tuple(address target, bytes callData)[] calls) returns (uint256 blockNumber, bytes[] returnData)",
                              "function aggregate3(tuple(address target, bool requireSuccess, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function aggregate3Value(tuple(address target, bool requireSuccess, uint256 value, bytes callData)[] calls) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function blockAndAggregate(tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)",
                              "function execute(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) payable",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests) payable returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function executeBatch(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature)[] requests, address refundReceiver) payable",
                              "function getBasefee() view returns (uint256 basefee)",
                              "function getBlockHash(uint256 blockNumber) view returns (bytes32 blockHash)",
                              "function getBlockNumber() view returns (uint256 blockNumber)",
                              "function getChainId() view returns (uint256 chainid)",
                              "function getCurrentBlockCoinbase() view returns (address coinbase)",
                              "function getCurrentBlockGasLimit() view returns (uint256 gaslimit)",
                              "function getCurrentBlockTimestamp() view returns (uint256 timestamp)",
                              "function getEthBalance(address addr) view returns (uint256 balance)",
                              "function getLastBlockHash() view returns (bytes32 blockHash)",
                              "function getPrevRandao() view returns (uint256 prevrandao)",
                              "function nonces(address owner) view returns (uint256)",
                              "function tryAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) returns (tuple(bool success, bytes returnData)[] returnData)",
                              "function tryBlockAndAggregate(bool requireSuccess, tuple(address target, bytes callData)[] calls) payable returns (uint256 blockNumber, bytes32 blockHash, tuple(bool success, bytes returnData)[] returnData)",
                              "function verify(tuple(address from, address to, uint256 value, uint256 gas, uint48 deadline, bytes data, bytes signature) request) view returns (bool)",
                              "event EIP712DomainChanged()",
                              "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                              "error AddressInsufficientBalance(address account)",
                              "error ERC2771ForwarderExpiredRequest(uint48 deadline)",
                              "error ERC2771ForwarderInvalidSigner(address signer, address from)",
                              "error ERC2771ForwarderMismatchedValue(uint256 requestedValue, uint256 msgValue)",
                              "error ERC2771UntrustfulTarget(address target, address forwarder)",
                              "error FailedInnerCall()",
                              "error InvalidAccountNonce(address account, uint256 currentNonce)",
                              "error InvalidShortString()",
                              "error StringTooLong(string str)"
                            ],
                            "constructorArgs": [],
                            "linkedLibraries": {},
                            "deployTxnHash": "",
                            "deployTxnBlockNumber": "",
                            "deployTimestamp": "1727702064",
                            "sourceName": "src/TrustedMulticallForwarder.sol",
                            "contractName": "TrustedMulticallForwarder",
                            "deployedOn": "contract.TrustedMulticallForwarder",
                            "gasUsed": 0,
                            "gasCost": "0"
                          }
                        },
                        "extras": {
                          "salt": "salt"
                        }
                      }
                    },
                    "settings": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    },
                    "txns": {
                      "upgrade_proxy": {
                        "hash": "0x322054bd97bf23dcd7bac8a92737fe52df6bc7b6ba919a0f356bbbac4dfc6ebb",
                        "blockNumber": "8374750",
                        "timestamp": "1747828296",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0xA86DcB6f02a0AFEc5b66Ad7112ACd3bcbbdF98ca",
                                "0x1F10bdA2644F77e70Ce8cD49B2B9469ffD37856B"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55420,
                        "gasCost": "863204254",
                        "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xd62944ccc94d429dc4fe5628b22cdc7c3dcde1d3c669bfa9b3a90389fbbe4ddd",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle",
                    "gasUsed": 108479,
                    "gasCost": "922529803",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0xddd996ae3e17764752e663dd4147fcef0599892bcacb3b34890b68fed1c339ef",
                    "blockNumber": "8374767",
                    "timestamp": "1747828500",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x8715b7eaDC55DF39F0D7bd8D5Ae44BaD4A7a0a8f",
                            "0x18346EaF797B6c26399C30968e48Cf278466d7AB"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51327,
                    "gasCost": "785077138",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "0x003ddab4c759e8dc1a519d8f54410501bf7169ec4098e76aa180ab321fac7fa2",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 56949,
                    "gasCost": "1117962692",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "0x0f09fa5c086f87dad5321456133b7f0c2606b6fadcae50cac30b3a8bfb863a8c",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 57009,
                    "gasCost": "1081589799",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_createAccount": {
                    "hash": "0x6f14eb969a65aa396b120ac9f08f61ad7d33ca3657e66ac7fd7b34b0c133f39d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 57021,
                    "gasCost": "1189291565",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "0x0ea4abbbbb3b4105265e293591406c26f856dcec1d53727e92dc10184a6c05f1",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 57081,
                    "gasCost": "1145067438",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_deposit": {
                    "hash": "0x08f253c06dcf0c639b5e85e550f4dd04fd0048cfdfac2eaf7374670dc1c417e5",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 56949,
                    "gasCost": "1099485069",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "0xec84cad5f5012014983200e209710427845aba82697ab02c2dc096454af91eae",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 57141,
                    "gasCost": "1050556709",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "0x7583ac467a1407fe715de3fa3aff6cad86054df512b43dbb332f29b2ceb7f342",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 57057,
                    "gasCost": "997930950",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidate": {
                    "hash": "0x1fc453ee93e2ddbc8edbdd81563df11f57ade9a18c65aa907801ccc7134a784b",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 56973,
                    "gasCost": "1064136427",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xed3085a81969eed9b1f5085603db300d04e124dfe949438de6212f3c2b2e3dfb",
                    "blockNumber": "8374768",
                    "timestamp": "1747828512",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "769840723",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "0xc4e850fc6a725150be5c76506408f6334d0cbdf56ae7b31fffa2904605167664",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 57033,
                    "gasCost": "1013537198",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0xc8ecf21131a1d396ed92e353068f47cc236937fffc26c23df3fad125008cf891",
                    "blockNumber": "8374769",
                    "timestamp": "1747828524",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "745322710",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "0x266f89530ac6b3b675a7fe51165dc574f640fd54edc531b400898888623840f3",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 56949,
                    "gasCost": "977776751",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdraw": {
                    "hash": "0xab1a7424ebbbf36a928f31ddcff86f34f5a65b84e2591a6a07accc05a70e4c2d",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 56961,
                    "gasCost": "1025829153",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "0x8b454b4aaff7f2d239acee0bdc9c91599eb7386b9dfefeeaba329933039fb864",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 57153,
                    "gasCost": "993756197",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "0xc560108ce9e942bfd2b466717e3b7cbd60fb56aaf29bf0da9b72b9975ae94f01",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 57069,
                    "gasCost": "960143044",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_account": {
                    "hash": "0xf3be6eae67f31320f9fb1438f9326b5160b5a7e5adec7aef51f3b7ef67afd939",
                    "blockNumber": "8374770",
                    "timestamp": "1747828536",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0xCb5D8fE2B4AfbedB1970CCDc2f2e2919a6114240",
                            "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80746,
                    "gasCost": "743339977",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "init_usd": {
                    "hash": "0x3c34d233c02a136702c2e0169c848205d40b9cf11f9375a8e4c5c69a7fb290b6",
                    "blockNumber": "8374771",
                    "timestamp": "1747828548",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            "0xA999E916141368c05BE86965c0161a9De958d82b"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94076,
                    "gasCost": "728100935",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "set_oracle_manager": {
                    "hash": "0x3efc31a65f2fc3d3670e57d8b0ee8bac01f5aca89a84ea10fd168c1aebb4c712",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager",
                    "gasUsed": 54810,
                    "gasCost": "979601782",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x04a6171d1780f588f946d7d0a9441bb20adf358dfb2b8bdd7bdc6fe82cd18f3b",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                            {
                              "depositingEnabled": true,
                              "issuanceRatioD18": "10000000000000000000",
                              "liquidationRatioD18": "10000000000000000000",
                              "liquidationRewardD18": "0",
                              "oracleNodeId": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "tokenAddress": "0xF87E23c41Ce898Ab7640FC3Ce2eb8B11f257e67a",
                              "minDelegationD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                            }
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral",
                    "gasUsed": 240627,
                    "gasCost": "1006144889",
                    "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                  }
                },
                "extras": {
                  "account_token_name": "Synthetix Account",
                  "account_token_symbol": "SACCT",
                  "bundleSalt": "main",
                  "oracle_manager_package": "oracle-manager",
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "main",
                  "usd_token_name": "Synthetic USD Token v3",
                  "usd_token_symbol": "sUSD",
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733"
                }
              }
            },
            "txns": {
              "addRegisterMarketToFeatureFlag": {
                "hash": "0xe6d46468eea0a83c3bce937e4ae44f2df5f99dc69821bf6bb0b5d98b97465334",
                "blockNumber": "8323670",
                "timestamp": "1747208688",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addRegisterMarketToFeatureFlag",
                "gasUsed": 84529,
                "gasCost": "2100697351",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "registerMarket": {
                "hash": "0x3f018f6522996c65c87afb3b4dedf5303aac7c9525276ffd6738e1ada2ee4294",
                "blockNumber": "8323671",
                "timestamp": "1747208700",
                "events": {
                  "MarketRegistered": [
                    {
                      "name": "MarketRegistered",
                      "args": [
                        "0xEa1ef48647E2418b50480724E120C6A0b0fb54c3",
                        "5",
                        "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.registerMarket",
                "gasUsed": 138715,
                "gasCost": "2107543387",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "upgrade_proxy": {
                "hash": "0xc94872e5a1d3e3acc96570ba1f121ab864f0f121f97af3cf10d92e0b7da5ebe4",
                "blockNumber": "8479108",
                "timestamp": "1749088512",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xEa1ef48647E2418b50480724E120C6A0b0fb54c3",
                        "0xb04F33e02DdA68cAF8ddD14928b626616f12eCD6"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 50607,
                "gasCost": "1001708",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "addCreateMarketToFeatureFlag": {
                "hash": "0x6f0224f0f5d3a27aadae1ebf77306f871d26858fcb0b8343ed8f419949a55662",
                "blockNumber": "8323681",
                "timestamp": "1747208820",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x6372656174654d61726b65740000000000000000000000000000000000000000",
                        "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addCreateMarketToFeatureFlag",
                "gasUsed": 101401,
                "gasCost": "2262963546",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "addPerpsMarketToFeatureFlag": {
                "hash": "0x27aa9606c6ef25cc63399f43aa324b1aeacfffc18be5226951fe412a923af612",
                "blockNumber": "8323682",
                "timestamp": "1747208832",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0xEa1ef48647E2418b50480724E120C6A0b0fb54c3"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addPerpsMarketToFeatureFlag",
                "gasUsed": 84529,
                "gasCost": "2226233573",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "addPerpsSystemToFeatureFlag": {
                "hash": "0xd5bb81dcf3b4c46d969a0590deab429c9399db794e30149176d9ca8b0b1f67a0",
                "blockNumber": "8389255",
                "timestamp": "1748002836",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x706572707353797374656d000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addPerpsSystemToFeatureFlag",
                "gasUsed": 56722,
                "gasCost": "1963286",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "enableFeatureCreateAccount": {
                "hash": "0xfc1de5161a39d9ce747280e9e64475b328db6085aa2a71119639987eb9f09867",
                "blockNumber": "8323683",
                "timestamp": "1747208844",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enableFeatureCreateAccount",
                "gasUsed": 56790,
                "gasCost": "2172813347",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "init_account": {
                "hash": "0x33bef093b0d629a8a280413a5da7a9f1ce63186e9bfaab0e06d12245546cd4cc",
                "blockNumber": "8374780",
                "timestamp": "1747828656",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x6736A2D950F955E7aC70C7Bd20dEA773664b0BE4",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                        "0x6736A2D950F955E7aC70C7Bd20dEA773664b0BE4",
                        "0x9B7c69F5B61DF63B9914986e61d8c9B0c3aaf8a5"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_account",
                "gasUsed": 80604,
                "gasCost": "638358448",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              },
              "initializeFactory": {
                "hash": "0x1e6fa801b624d057190b3d3bc7c3b4bf8a5f84005e82cc23985d456b7b21aeb3",
                "blockNumber": "8479109",
                "timestamp": "1749088524",
                "events": {},
                "deployedOn": "invoke.initializeFactory",
                "gasUsed": 37437,
                "gasCost": "1001593",
                "signer": "0x48914229deDd5A9922f44441ffCCfC2Cb7856Ee9"
              }
            },
            "extras": {
              "coreProxyOwner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "spotMarketPackage": "synthetix-spot-market:latest",
              "spotMarketPreset": "main",
              "synthetixPackage": "synthetix:latest",
              "synthetixPreset": "main",
              "superMarketId": "5"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "setting.v2x_package": {
      "artifacts": {
        "settings": {
          "v2x_package": "synthetix:2.101.2"
        }
      },
      "hash": "fe9d470577b1bd5da244abb3a72b717b",
      "version": 7
    }
  },
  "seq": 9,
  "track": "yd6gzchcj0j",
  "options": {},
  "status": "complete",
  "meta": {
    "gitUrl": "https://github.com/Synthetixio/synthetix-deployments",
    "commitHash": "b38a20d163cd63f77c8c26026541ccb944342556",
    "readme": "https://github.com/Synthetixio/synthetix-deployments/blob/b38a20d163cd63f77c8c26026541ccb944342556/README.md"
  },
  "miscUrl": "ipfs://QmeSt2mnJKE8qmRhLyYbHQQxDKpsFbcWnw5e7JF4xVbN6k",
  "chainId": 11155111
}